Skip to content

공통‐API 명세

ashsty edited this page Jul 25, 2024 · 10 revisions

API 명세서

최종 수정: 2024-07-25

  • 기존의 방 관련 리스트 API들의 DTO 네이밍이 roomInfo -> rooms로 수정되었습니다.
  • 기존의 방 상세정보 API의 DTO 네이밍이 roomInfo -> roomResponse로 수정되었습니다.
  • 기존의 방 관련(리스트, 상세 정보) API들의 DTO 필드 currentParticipantSize의 네이밍이 currentParticipants로 수정되었습니다.
  • 기존의 방 관련(리스트, 상세 정보) API들의 DTO 필드 maximumParticipantSize의 네이밍이 limitedParticipants로 수정되었습니다.

  • 기존의 리뷰어/리뷰이 API의 DTO 네이밍이 reviewInfo -> matchResultResponses로 수정되었습니다.

목차

  1. 유저가 참여 중인 방 리스트
  2. 모집 중인 방 리스트 API
  3. 모집 완료된 방 리스트 API
  4. 특정 방 참여 신청 API
  5. 방 상세 정보 API
  6. 리뷰어 조회 API
  7. 리뷰어 조회 API
  8. 리뷰 완료 API

유저가 참여 중인 방 리스트 API

기능: 로그인한 유저가 참여 중인 방의 리스트를 보여줍니다.


  • URL
url : localhost:8080/rooms/participated
method: GET
  • 입력값
header {
    Authorization: "[email protected]"
}
  • 반환 json
{
"rooms": [
	{
	    id: 1,
	    title: "자바 레이싱 카 - TDD",
	    content: "TDD를 배우고 싶은 자 나에게로",
	    manager: "김코딩",
	    repositoryLink: "https://github.com/example/java-racingcar",
	    thumbnailLink:
	      "https://gongu.copyright.or.kr/gongu/wrtㅓ/cmmn/wrtFileImageView.do?wrtSn=13301655&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8yMS9DTFMxMDAwNC8xMzMwMTY1NV9XUlRfMjFfQ0xTMTAwMDRfMjAyMTEyMTNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10004",
            matchingSize: 3,
	    keywords: ["TDD", "클린코드", "자바"],
	    currentParticipants: 15,
	    limitedParticipants: 20,
	    recruitmentDeadline: "2024-07-30T15:00",
	    reviewDeadline: "2024-08-10T23:59",
	    isParticipated: true,
	    isClosed: false
	 },
         {
	    id: 2,
	    title: "자바 레이싱 카 - MVC",
	    content: "MVC 패턴을 아시나요?",
            manager: "최거짓",
	    repositoryLink: "https://github.com/example/java-racingcar",
	    thumbnailLink:
	      "https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13301655&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8yMS9DTFMxMDAwNC8xMzMwMTY1NV9XUlRfMjFfQ0xTMTAwMDRfMjAyMTEyMTNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10004",
	    matchingSize: 4,
            keywords: ["TDD", "클린코드", "자바"],
	    currentParticipants: 17,
	    limitedParticipants: 30,
	    recruitmentDeadline: "2024-07-30T15:00",
	    reviewDeadline: "2024-08-10T23:59",
	    isParticipated: true,
	    isClosed: false
	  }
	]
}

모집 중인 방 리스트 API

기능: 현재 모집 중인 방의 리스트를 보여줍니다.


  • URL
url : localhost:8080/rooms/opened?classification=fe&page=3
page: 0 ~ 
state: 'all' | 'an' | 'be' | 'fe'
method: GET
  • 입력값
header {
    Authorization: "[email protected]"
}
  • 반환 json
{
"rooms": [
	{
	    id: 1,
	    title: "자바 레이싱 카 - TDD",
	    content: "TDD를 배우고 싶은 자 나에게로",
	    manager: "김코딩",
	    repositoryLink: "https://github.com/example/java-racingcar",
	    thumbnailLink:
	      "https://gongu.copyright.or.kr/gongu/wrtㅓ/cmmn/wrtFileImageView.do?wrtSn=13301655&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8yMS9DTFMxMDAwNC8xMzMwMTY1NV9XUlRfMjFfQ0xTMTAwMDRfMjAyMTEyMTNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10004",
            matchingSize: 3,
	    keywords: ["TDD", "클린코드", "자바"],
	    currentParticipants: 15,
	    limitedParticipants: 20,
	    recruitmentDeadline: "2024-07-30T15:00",
	    reviewDeadline: "2024-08-10T23:59",
	    isParticipated: true,
	    isClosed: false
	 },
         {
	    id: 2,
	    title: "자바 레이싱 카 - MVC",
	    content: "MVC 패턴을 아시나요?",
            manager: "최거짓",
	    repositoryLink: "https://github.com/example/java-racingcar",
	    thumbnailLink:
	      "https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13301655&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8yMS9DTFMxMDAwNC8xMzMwMTY1NV9XUlRfMjFfQ0xTMTAwMDRfMjAyMTEyMTNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10004",
	    matchingSize: 4,
            keywords: ["TDD", "클린코드", "자바"],
	    currentParticipants: 17,
	    limitedParticipants: 30,
	    recruitmentDeadline: "2024-07-30T15:00",
	    reviewDeadline: "2024-08-10T23:59",
	    isParticipated: true,
	    isClosed: false
	  }
	],
	"isLastPage": false
}

모집 완료된 방 리스트 API

기능: 모집이 완료된 방의 리스트를 보여줍니다.


  • URL
url : localhost:8080/rooms/closed?classification=fe&page=3
page: 0 ~ 
state: 'all' | 'an' | 'be' | 'fe'
method: GET
  • 입력값
header {
    Authorization: "[email protected]"
}
  • 반환 json
{
"rooms": [
	{
	    id: 1,
	    title: "자바 레이싱 카 - TDD",
	    content: "TDD를 배우고 싶은 자 나에게로",
	    manager: "김코딩",
	    repositoryLink: "https://github.com/example/java-racingcar",
	    thumbnailLink:
	      "https://gongu.copyright.or.kr/gongu/wrtㅓ/cmmn/wrtFileImageView.do?wrtSn=13301655&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8yMS9DTFMxMDAwNC8xMzMwMTY1NV9XUlRfMjFfQ0xTMTAwMDRfMjAyMTEyMTNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10004",
            matchingSize: 3,
	    keywords: ["TDD", "클린코드", "자바"],
	    currentParticipants: 15,
	    limitedParticipants: 20,
	    recruitmentDeadline: "2024-07-30T15:00",
	    reviewDeadline: "2024-08-10T23:59",
	    isParticipated: true,
	    isClosed: false
	 },
         {
	    id: 2,
	    title: "자바 레이싱 카 - MVC",
	    content: "MVC 패턴을 아시나요?",
            manager: "최거짓",
	    repositoryLink: "https://github.com/example/java-racingcar",
	    thumbnailLink:
	      "https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13301655&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8yMS9DTFMxMDAwNC8xMzMwMTY1NV9XUlRfMjFfQ0xTMTAwMDRfMjAyMTEyMTNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10004",
	    matchingSize: 4,
            keywords: ["TDD", "클린코드", "자바"],
	    currentParticipants: 17,
	    limitedParticipants: 30,
	    recruitmentDeadline: "2024-07-30T15:00",
	    reviewDeadline: "2024-08-10T23:59",
	    isParticipated: true,
	    isClosed: false
	  }
	],
	"isLastPage": false
}

특정 방 참여 신청 API

기능: 특정 방에 참여 신청을 할 수 있습니다.


  • URL
url : localhost:8080/participate/{id}
method: POST
  • 입력값
header {
    Authorization: "[email protected]"
}
  • 반환 json
X

방 상세 정보 API

기능: 방의 상세 정보를 보여줍니다.


  • URL
url : localhost:8080/rooms/{id}
method: GET
  • 입력값
header {
    Authorization: "[email protected]"
}
  • 반환 json
{
"roomResponse": {
	    id: 1,
	    title: "자바 레이싱 카 - TDD",
	    content: "TDD를 배우고 싶은 자 나에게로",
	    manager: "김코딩",
	    repositoryLink: "https://github.com/example/java-racingcar",
	    thumbnailLink:
	      "https://gongu.copyright.or.kr/gongu/wrt/cmmn/wrtFileImageView.do?wrtSn=13301655&filePath=L2Rpc2sxL25ld2RhdGEvMjAyMS8yMS9DTFMxMDAwNC8xMzMwMTY1NV9XUlRfMjFfQ0xTMTAwMDRfMjAyMTEyMTNfMQ==&thumbAt=Y&thumbSe=b_tbumb&wrtTy=10004",
            matchingSize: 3,
	    keywords: ["TDD", "클린코드", "자바"],
	    currentParticipants: 15,
	    limitedParticipants: 20,
	    recruitmentDeadline: "2024-07-30T15:00",
	    reviewDeadline: "2024-08-10T23:59",
	    isParticipated: true,
	    isClosed: false
	 }
}

리뷰어 조회 API

기능: 로그인한 유저가 참여 중인 리뷰방의 리뷰어 리스트를 보여줍니다.


  • URL
url : localhost:8080/rooms/{id}/reviewers
method: GET
  • 입력값
header {
    Authorization: "[email protected]"
}
  • 반환 json
{
    "matchResultResponses": [
	{
	    "userId" : 1,
	    "username" : "youngsu5582",
	    "link" : "https://github.com/youngsu5582/java-racing/comment/4",
	     "isReviewed" : true
	}, 
	{
	    "userId" : 2,
	    "username" : "youngsu5583",
	    "link" : "https://github.com/youngsu5582/java-racing/pull/4",
	    "isReviewed" : false
	},
	{
	    "userId" : 3,
	    "username" : "youngsu5584",
	    "link" : "https://github.com/youngsu5582/java-racing/pull/4",
	    "isReviewed" : false
	}
    ]
}

리뷰이 조회 API

기능: 로그인한 유저가 참여 중인 리뷰방의 리뷰이 리스트를 보여줍니다.


  • URL
url : localhost:8080/rooms/{id}/reviewees
method: GET
  • 입력값
header {
    Authorization: "[email protected]"
}
  • 반환 json
{
    "matchResultResponses": [
	{
	    "userId" : 1,
	    "username" : "youngsu5582",
	    "link" : "https://github.com/youngsu5582/java-racing/pull/7",
	     "isReviewed" : true
	}, 
	{
	    "userId" : 2,
	    "username" : "youngsu5583",
	    "link" : "https://github.com/youngsu5582/java-racing/pull/12",
	    "isReviewed" : false
	{
	    "userId" : 3,
	    "username" : "youngsu5584",
	    "link" : "https://github.com/youngsu5582/java-racing/pull/23",
	    "isReviewed" : false
	}
    ]
}

리뷰 완료 API

기능: 로그인한 유저가 참여 중인 리뷰방에서 특정 리뷰이의 리뷰를 완료하였습니다.


  • URL
url : localhost:8080/review/complete
method: POST
  • 입력값
header {
    Authorization: "[email protected]"
}

body{
    roomId: 1,
    revieweeId: 5
}
  • 반환 json
X
Clone this wiki locally