API 목록

POST: Study 생성

HTTP Request
POST /teams/1/studies HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: mocked-access-token
Content-Length: 164
Host: localhost:8080

{
  "name" : "알고리즘",
  "description" : "알고리즘 스터디 입니다.",
  "startDate" : "2023-01-01",
  "endDate" : "2024-01-01",
  "cropId" : 1
}
Table 1. /teams/{teamId}/studies
Parameter Description

teamId

스터디 id

Table 2. Request Fields
Path Type Description

name

String

스터디 이름

description

String

스터디 설명

startDate

String

시작 날짜

endDate

String

종료 날짜

cropId

Number

작물 id

HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

GET: Study 조회

HTTP Request
GET /studies/1 HTTP/1.1
Host: localhost:8080
Table 3. /studies/{studyId}
Parameter Description

studyId

스터디 id

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 429

{
  "id" : 1,
  "name" : "알고리즘",
  "description" : "알고리즘 스터디입니다.",
  "startDate" : "2020-01-01",
  "endDate" : "2020-01-02",
  "status" : "IN_PROGRESS",
  "teamReference" : {
    "id" : 1,
    "name" : "개발 동아리 BDD",
    "description" : "개발 동아리 BDD입니다!",
    "imageUrl" : "https://~"
  },
  "cropId" : null,
  "studyProgressRatio" : 50,
  "studyLeaderId" : 1
}

DELETE: Study 삭제

HTTP Request
DELETE /studies/1 HTTP/1.1
Host: localhost:8080
Table 4. /studies/{studyId}
Parameter Description

studyId

스터디 id

HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

PATCH: Study 수정

HTTP Request
PUT /studies/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 170
Host: localhost:8080

{
  "name" : "스프링",
  "description" : "스프링 스터디 입니다.",
  "startDate" : "2023-01-01",
  "endDate" : "2024-01-01",
  "status" : "IN_PROGRESS"
}
Table 5. /studies/{studyId}
Parameter Description

studyId

스터디 id

Table 6. Request Fields
Path Type Description

name

String

스터디 이름

description

String

스터디 설명

startDate

String

시작 날짜

endDate

String

종료 날짜

status

String

현재 상태

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

PATCH: Study 종료

HTTP Request
PATCH /studies/1/termination HTTP/1.1
Host: localhost:8080
Table 7. /studies/{studyId}/termination
Parameter Description

studyId

스터디 id

HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

PATCH: Study 상태 수정

HTTP Request
PATCH /studies/1/status?status=IN_PROGRESS HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Table 8. /studies/{studyId}/status
Parameter Description

studyId

스터디 id

HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

GET: 나의 Study 목록 조회

HTTP Request
GET /studies/members/1 HTTP/1.1
Authorization: Bearer mocked-access-token
Host: localhost:8080
Table 9. /studies/members/{memberId}
Parameter Description

memberId

회원 id

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 510

[ {
  "id" : 1,
  "name" : "알고리즘",
  "description" : "알고리즘 스터디입니다.",
  "startDate" : "2020-01-01",
  "endDate" : "2020-01-02",
  "status" : "IN_PROGRESS",
  "cropId" : 1,
  "studyProgressRatio" : 50,
  "teamId" : 1
}, {
  "id" : 1,
  "name" : "알고리즘",
  "description" : "알고리즘 스터디입니다.",
  "startDate" : "2020-01-01",
  "endDate" : "2020-01-02",
  "status" : "IN_PROGRESS",
  "cropId" : 1,
  "studyProgressRatio" : 50,
  "teamId" : 1
} ]
Table 10. HTTP Response
Path Type Description

[].id

Number

스터디의 ID

[].name

String

스터디의 이름

[].description

String

스터디의 설명

[].startDate

String

스터디의 시작일

[].endDate

String

스터디의 종료일

[].status

String

스터디의 진행 상태

[].cropId

Number

스터디의 작물 ID

[].studyProgressRatio

Number

스터디 진행률

[].teamId

Number

팀 ID

GET: 팀의 Study 랭킹(목록) 조회

HTTP Request
GET /teams/1/studies?page=0&size=4 HTTP/1.1
Host: localhost:8080
Table 11. /teams/{teamId}/studies
Parameter Description

teamId

팀 id

Table 12. Query Parameters
Parameter Description

page

페이지 (default: 0)

size

한 페이지당 불러올 개수 (default: 4)

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1155

{
  "content" : [ {
    "point" : 0,
    "studyReferenceResponse" : {
      "id" : 1,
      "name" : "study1",
      "description" : "this is study 1",
      "startDate" : "2024-07-06",
      "endDate" : "2024-07-07",
      "status" : "IN_PROGRESS",
      "cropId" : 1,
      "studyProgressRatio" : 60,
      "teamId" : 1
    }
  }, {
    "point" : 20,
    "studyReferenceResponse" : {
      "id" : 2,
      "name" : "study2",
      "description" : "this is study 2",
      "startDate" : "2024-07-06",
      "endDate" : "2024-08-07",
      "status" : "IN_PROGRESS",
      "cropId" : 2,
      "studyProgressRatio" : 50,
      "teamId" : 1
    }
  } ],
  "pageable" : {
    "pageNumber" : 0,
    "pageSize" : 4,
    "sort" : {
      "empty" : true,
      "sorted" : false,
      "unsorted" : true
    },
    "offset" : 0,
    "unpaged" : false,
    "paged" : true
  },
  "totalPages" : 1,
  "last" : true,
  "totalElements" : 2,
  "size" : 4,
  "number" : 0,
  "sort" : {
    "empty" : true,
    "sorted" : false,
    "unsorted" : true
  },
  "first" : true,
  "numberOfElements" : 2,
  "empty" : false
}