개요

이 API 문서는 DND 11기 7조 째깍 서비스의 API 문서를 유용하게 볼수 있게 도와줍니다.

기본적인 구성은 다음과 같습니다

API 구성

/api/v1/**

Domain Name 구성

https://43.203.239.67.nip.io

참여 인원

이름

GitHub 주소

정승조

https://github.com/f1v3-dev

류태웅

https://github.com/RTUnu12


API

1. 카테고리

1.1. 카테고리 목록 조회

HTTP Request
GET /api/v1/categories HTTP/1.1
X-CSRF-TOKEN: aDaBXWcRr1aOO9t2kz9HUMeaXcwTRU6gWprU087w3LiSwUSQUFS5aAJ3l2GjXu0TqxJzZfWqcPV1I36Nbf6x5aqT642h8331
Host: localhost:8080
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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 429

[ {
  "categoryId" : 1,
  "categoryName" : "학교"
}, {
  "categoryId" : 2,
  "categoryName" : "친구"
}, {
  "categoryId" : 3,
  "categoryName" : "팀플"
}, {
  "categoryId" : 4,
  "categoryName" : "회의"
}, {
  "categoryId" : 5,
  "categoryName" : "스터디"
}, {
  "categoryId" : 6,
  "categoryName" : "취미"
}, {
  "categoryId" : 7,
  "categoryName" : "봉사"
}, {
  "categoryId" : 8,
  "categoryName" : "기타"
} ]
Table 1. Response Fields
Path Type Description

[].categoryId

Number

카테고리 아이디

[].categoryName

String

카테고리 이름

1.2. 카테고리 개별 조회 - 성공

Table 2. /api/v1/categories/{id}
Parameter Description

id

카테고리 아이디

HTTP Request
GET /api/v1/categories/1 HTTP/1.1
X-CSRF-TOKEN: M14pxwdHAOLVk8E3Q2D8MaY7aj8kM7ZTm-2ZFTh7ZN0okgbMUD0Q_zF_YYH4oPlWdE3IVJYKRwZCBtV--N2sLF0aVe9OpD71
Host: localhost:8080
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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 51

{
  "categoryId" : 1,
  "categoryName" : "학교"
}

1.3. 카테고리 개별 조회 - 실패

HTTP Request
GET /api/v1/categories/100 HTTP/1.1
X-CSRF-TOKEN: hLA0G6j9hTepDFsGAflGHKw5_ce6RA6H05TOAQWi7tUFZxRUtNEEK5DFtweEPGhkMNRyLZxa0KaNdjmq4a37ZzzE2-MxUiYx
Host: localhost:8080
HTTP Response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 102

{
  "code" : "404",
  "message" : "카테고리가 존재하지 않습니다.",
  "validation" : { }
}

2. 모임

2.1. 모임 생성 - 성공

HTTP Request
POST /api/v1/meetings HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer access_token
Content-Length: 229
X-CSRF-TOKEN: wlCZNs2isHLMPjmg6jRwyelcATetj6t9XrG0xce7vJhyoxxioWX9V_WRghfhCliWiRlE_Y1pLFbP7JJQOonXoaOP3agRxyRW
Host: localhost:8080

{
  "categoryIds" : [ 1, 2 ],
  "meetingName" : "세븐일레븐",
  "meetingStartDate" : "2024-07-27",
  "meetingEndDate" : "2024-07-29",
  "numberOfPeople" : 6,
  "isAnonymous" : false,
  "dueDateTime" : "2024-07-26T23:59:59"
}
Table 3. Request Fields
Path Type Description Optional Constraint

meetingName

String

모임 이름

모임 이름은 1자 이상 10자 이하로 입력해주세요.

meetingStartDate

String

모임 시작 날짜

모임 시작일은 종료일 이전이어야 합니다.

meetingEndDate

String

모임 종료 날짜

모임 종료일은 시작일 이후이어야 합니다.

numberOfPeople

Number

모임 인원

모임 인원은 2명 이상 10명 이하로 설정해주세요.

isAnonymous

Boolean

익명 여부

default = false (실명)

dueDateTime

String

일정 입력 마감 시간

일정 입력 마감 시간은 모임 시작일 이전이어야 합니다.

categoryIds

Array

카테고리 아이디 목록

1개 이상의 카테고리를 선택해주세요.

HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

2.2. 모임 생성 - 실패

HTTP Request
POST /api/v1/meetings HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer access_token
Content-Length: 180
X-CSRF-TOKEN: kSE0pI2Q5S7d6vUhVno1BcgyllCGuX-alnOCpGVTnNrZz2fkoEUAwr-j0h3wjMQWZVcBMPgAuzK_jE23oUW2kFE1qO7urgLX
Host: localhost:8080

{
  "categoryIds" : [ ],
  "meetingName" : null,
  "meetingStartDate" : null,
  "meetingEndDate" : null,
  "numberOfPeople" : null,
  "isAnonymous" : null,
  "dueDateTime" : null
}
HTTP Response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 583

{
  "code" : "400",
  "message" : "잘못된 요청입니다.",
  "validation" : {
    "meetingEndDate" : "모임 일정 종료일은 필수 값입니다.",
    "categoryIds" : "카테고리는 최소 1개 이상 3개 이하로 선택해주세요.",
    "isAnonymous" : "익명 여부는 필수 값입니다.",
    "meetingName" : "모임명은 필수 값입니다.",
    "dueDateTime" : "일정 입력 종료 시간은 필수 값입니다.",
    "numberOfPeople" : "인원수는 필수 값입니다.",
    "meetingStartDate" : "모임 일정 시작일은 필수 값입니다."
  }
}
Table 4. Error Response
Path Type Description

code

String

상태 코드

message

String

에러 메시지

validation

Object

유효성 검사 오류 목록

validation.meetingName

String

모임명은 필수 값입니다.

validation.meetingStartDate

String

모임 일정 시작일은 필수 값입니다.

validation.meetingEndDate

String

모임 일정 종료일은 필수 값입니다.

validation.numberOfPeople

String

인원수는 필수 값입니다.

validation.isAnonymous

String

익명 여부는 필수 값입니다.

validation.dueDateTime

String

일정 입력 종료 시간은 필수 값입니다.

validation.categoryIds

String

카테고리는 최소 1개 이상 8개 이하로 선택해주세요.

2.3. 모임 삭제

Table 5. /api/v1/meetings/{meetingId}
Parameter Description

meetingId

모임 ID

DELETE /api/v1/meetings/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
X-CSRF-TOKEN: SQpCeR9hiWUPOJ5bX4SV-vtafZLZ_71E8lLo-f0dolKgDJcafWwnGy4A6AQiDKxob6mhn59qUKrvmohpx2Pan8R5wTeXP68p
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

2.4. 모임 정보 조회

HTTP Request
GET /api/v1/meetings/123ABC/info HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
X-CSRF-TOKEN: VIwyxs7LsCJ5WlNiqvJT51X9Oufn5x6sjNusmbsEB_hz9P0gZupRo6uugUFUOTZRnN9ngmecF4be1HuB6ujPrIgyNcFBlc9C
Host: localhost:8080
Table 6. /api/v1/meetings/{meetingUuid}/info
Parameter Description

meetingUuid

모임 UUID

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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 215

{
  "meetingId" : 1,
  "categoryNames" : [ "팀플", "회의" ],
  "meetingName" : "세븐일레븐",
  "meetingStartDate" : "2024-08-27",
  "meetingEndDate" : "2024-08-29",
  "dueDateTime" : "2024-08-26T23:59:59"
}
Path Type Description

categoryNames

Array

카테고리 리스트

meetingId

Number

모임 ID

meetingName

String

모임 이름

meetingStartDate

String

모임 시작 날짜

meetingEndDate

String

모임 종료 날짜

dueDateTime

String

일정 입력 마감 시간

2.5. 모임 최적 시간 조회

HTTP Request
GET /api/v1/meetings/123ABC/times?sort=COUNT&request_time=2024-10-18T17%3A43%3A25.692006 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
X-CSRF-TOKEN: cbezmIkdQqX2f-LPZ8JTp5bZiljoJBUPbDOLOQTMjJDencdJQI6G-boqIcHbSdH7U-9nkKG_pzndQHAiWlfvDDeutPbp-aV5
Host: localhost:8080
Table 7. /api/v1/meetings/{meetingUuid}/times
Parameter Description

meetingUuid

모임 UUID

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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 484

{
  "data" : {
    "meetingTimeList" : [ {
      "memberNames" : [ "고래", "상어" ],
      "startTime" : "2024-08-27T10:00:00",
      "endTime" : "2024-08-27T12:00:00",
      "rank" : 1.0
    } ],
    "numberOfPeople" : 2,
    "isAnonymous" : false,
    "meetingStartDate" : "2024-08-27",
    "meetingEndDate" : "2024-08-29",
    "requestTime" : "2024-10-18T17:43:25.692006"
  },
  "pageInfo" : {
    "page" : 1,
    "size" : 1,
    "totalPages" : 1,
    "totalElements" : 1
  }
}
Path Type Description

data.numberOfPeople

Number

총 인원 수

data.isAnonymous

Boolean

익명 여부

data.meetingStartDate

String

모임 시작 날짜

data.meetingEndDate

String

모임 종료 날짜

data.requestTime

String

요청 시간

data.meetingTimeList[].memberNames

Array

멤버 이름 리스트

data.meetingTimeList[].startTime

String

시작 시간

data.meetingTimeList[].endTime

String

종료 시간

data.meetingTimeList[].rank

Number

우선순위 (오름차순)

pageInfo.page

Number

현재 페이지

pageInfo.size

Number

페이지 크기

pageInfo.totalElements

Number

총 요소 수

pageInfo.totalPages

Number

총 페이지 수

2.6. 모임 참가자 목록 조회

HTTP Request
GET /api/v1/meetings/123ABC/participants HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
X-CSRF-TOKEN: 9GQyGNZMySTWC_cOElccXAGNpgxxlYrgu2jUMt6oZmBYc1MEkQAKLeUqrxz7PpE_JHooOmPrizUV9OnNg1vgA73JAFdvEDI9
Host: localhost:8080
Table 8. /api/v1/meetings/{meetingUuid}/participants
Parameter Description

meetingUuid

모임 UUID

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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 244

{
  "numberOfPeople" : 2,
  "isAnonymous" : false,
  "participantInfoList" : [ {
    "nickname" : "고래",
    "isAssigned" : true,
    "isLeader" : true
  }, {
    "nickname" : "상어",
    "isAssigned" : true,
    "isLeader" : false
  } ]
}
Path Type Description

numberOfPeople

Number

참석자 수

isAnonymous

Boolean

익명 여부

participantInfoList.[].nickname

String

참석자 닉네임

participantInfoList.[].isAssigned

Boolean

일정 할당 여부

participantInfoList.[].isLeader

Boolean

참석자 리더 여부

3. 회원

3.1. 회원이 속한 모임 조회

HTTP Request
GET /api/v1/members/meetings HTTP/1.1
Accept: application/json
X-CSRF-TOKEN: 0VZFop5Eo8WKpa5sYsToKfEVwWcYZ-IStkEARdRBPTYxvjH8tDJ1wPpwmqenkJdbAencH5ct7AUuAtY_gyVkdbEjD1dUjwjN
Host: localhost:8080
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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 309

[ {
  "categoryNames" : [ "팀플", "스터디", "회의" ],
  "meetingId" : 1,
  "meetingUuid" : "123ABC",
  "meetingName" : "세븐일레븐",
  "meetingStartDate" : "2024-08-27",
  "meetingEndDate" : "2024-08-29",
  "dueDateTime" : "2024-08-26T23:59:59",
  "numberOfPeople" : 6,
  "isAnonymous" : false
} ]
Table 9. Response Fields
Path Type Description

[].categoryNames

Array

카테고리 이름 리스트

[].meetingId

Number

모임 ID

[].meetingUuid

String

모임 UUID

[].meetingName

String

모임 이름

[].meetingStartDate

String

모임 시작일

[].meetingEndDate

String

모임 종료일

[].dueDateTime

String

투표 종료일

[].numberOfPeople

Number

모임 인원

[].isAnonymous

Boolean

익명 여부

3.2. 회원 닉네임 수정

HTTP Request
PATCH /api/v1/members/nickname HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 34
X-CSRF-TOKEN: lFaYpgiZ77jemuZ7UbHBzSn4j8Y4MhAPf9bbOXhs4ZF5JpSC8mOqkW76ionzrdUYY5z1qxzNoqcLBnUiSu_jCh4IhKJNFa3k
Host: localhost:8080

{
  "memberNickname" : "newName"
}
Table 10. Request Fields
Path Type Description Optional Constraint

memberNickname

String

변경할 닉네임

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

3.3. 회원 탈퇴

HTTP Request
DELETE /api/v1/members HTTP/1.1
Accept: application/json
X-CSRF-TOKEN: cGRCvX9bfGHk8bczB1Ru1Z1vrX9z5HjtcwShraFgFvN9Vox6E1wg20tqGFDJwdNXNXla4aVWgEZA0RvASjaZzMBVLsVPZuhI
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

4. 일정 (모임 일정)

일정은 모임의 하위 개념으로, 모든 요청은 /api/v1/meetings/{meetingUuid}/schedule 로 시작합니다.

4.1. 회원의 일정 할당 - 성공

HTTP Request
POST /api/v1/meetings/met123/schedules/members HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 263
X-CSRF-TOKEN: zkeHr_mWLlAViGP8fiM7q9ruLJtXRAQqLs5J_UWpPN1QErYxr3O1mc_0HGQ47gHFHw4PneKMAfo2fDcHGvYryXHIWe9odNUD
Host: localhost:8080

{
  "dateOfScheduleList" : [ {
    "startTime" : "2024-09-06T09:00:00",
    "endTime" : "2024-09-06T12:00:00",
    "rank" : 1
  }, {
    "startTime" : "2024-09-06T18:00:00",
    "endTime" : "2024-09-06T21:00:00",
    "rank" : 2
  } ],
  "nickname" : "정승조"
}
Table 11. /api/v1/meetings/{meetingUuid}/schedules/members
Parameter Description

meetingUuid

모임 UUID

Table 12. Request Fields
Path Type Description Optional Constraint

dateOfScheduleList

Array

일정 목록

dateOfScheduleList[].startTime

String

일정 시작 시간

dateOfScheduleList[].endTime

String

일정 종료 시간

dateOfScheduleList[].rank

Number

일정 우선순위

nickname

String

닉네임

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

4.2. 회원의 일정 할당 - 실패 (일정을 입력하지 않은 경우)

HTTP Request
POST /api/v1/meetings/met123/schedules/members HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 53
X-CSRF-TOKEN: -nTxJTr4PF4dj0hYeLgQP5VZ-OxS_ibrKv7BYbvIk2rquJ6myk2QQF7NCTgw6yw6TZUkWadp1Y1nzETGHZulVI2q91nT2fuR
Host: localhost:8080

{
  "dateOfScheduleList" : [ ],
  "nickname" : null
}
Table 13. /api/v1/meetings/{meetingUuid}/schedules/members
Parameter Description

meetingUuid

모임 UUID

HTTP Response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 173

{
  "code" : "400",
  "message" : "잘못된 요청입니다.",
  "validation" : {
    "dateOfScheduleList" : "일정 날짜를 최소 1개 이상 입력해주세요."
  }
}
Table 14. Error Response
Path Type Description

code

String

에러 코드

message

String

에러 메시지

validation

Object

유효성 검사

validation.dateOfScheduleList

String

일정 날짜 에러 메시지

4.3. 비회원 일정 할당 - 성공

HTTP Request
POST /api/v1/meetings/met123/schedules/guests HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 263
X-CSRF-TOKEN: 01o42K_MOcjPEDQ0uj8coGO8zOg7odzYTwZHYUT35h_SHpsk6mJcvMn-DvHidlYD2RIowVSM4Yldkb71fT9_V3GV13mzeP8Q
Host: localhost:8080

{
  "dateOfScheduleList" : [ {
    "startTime" : "2024-09-06T09:00:00",
    "endTime" : "2024-09-06T12:00:00",
    "rank" : 1
  }, {
    "startTime" : "2024-09-06T18:00:00",
    "endTime" : "2024-09-06T21:00:00",
    "rank" : 2
  } ],
  "nickname" : "정승조"
}
Table 15. Request Fields
Path Type Description Optional Constraint

dateOfScheduleList

Array

일정 목록

dateOfScheduleList[].startTime

String

일정 시작 시간

dateOfScheduleList[].endTime

String

일정 종료 시간

dateOfScheduleList[].rank

Number

일정 우선순위

nickname

String

닉네임

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

4.4. 비회원 일정 할당 - 실패 (일정을 입력하지 않은 경우)

HTTP Request
POST /api/v1/meetings/met123/schedules/guests HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 53
X-CSRF-TOKEN: UDFuvEthIU5UPOCwzYha1mC1tOu3RxVpMqLzvCYzkFS2RMxUMVBbjn1WR3Z5X4aE9aVut1bUmdPVfidEVsDEhUdRozCDdfpt
Host: localhost:8080

{
  "dateOfScheduleList" : [ ],
  "nickname" : null
}
HTTP Response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 173

{
  "code" : "400",
  "message" : "잘못된 요청입니다.",
  "validation" : {
    "dateOfScheduleList" : "일정 날짜를 최소 1개 이상 입력해주세요."
  }
}
Table 16. Error Response
Path Type Description

code

String

에러 코드

message

String

에러 메시지

validation

Object

유효성 검사

validation.dateOfScheduleList

String

일정 날짜 에러 메시지

4.5. 회원 일정 조회 - 성공

HTTP Request
GET /api/v1/meetings/met123/schedules/members HTTP/1.1
X-CSRF-TOKEN: gYY-EDQBkFD0FmAejXIn8USkhEAPWP5QLGXjUwZiofBTyFILtOdaIFVioTLZI1l_tV8TxCbHqXg8O8Z9HV3UZ2JVw5Iw_mU8
Host: localhost:8080
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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 337

{
  "scheduleNickname" : "유저",
  "scheduleUuid" : "sch123",
  "meetingStartDate" : "2024-09-06",
  "meetingEndDate" : "2024-09-07",
  "dateOfScheduleList" : [ {
    "startTime" : "2024-09-06T09:00:00",
    "endTime" : "2024-09-06T12:00:00"
  }, {
    "startTime" : "2024-09-07T12:00:00",
    "endTime" : "2024-09-07T15:00:00"
  } ]
}
Table 17. Response Fields
Path Type Description

scheduleNickname

String

일정을 등록한 유저 닉네임

scheduleUuid

String

일정 UUID

meetingStartDate

String

모임 시작 날짜

meetingEndDate

String

모임 종료 날짜

dateOfScheduleList

Array

일정 목록

dateOfScheduleList.[].startTime

String

일정 시작 시간

dateOfScheduleList.[].endTime

String

일정 종료 시간

4.6. 회원 일정 조회 - 실패 (모임이 존재하지 않는 경우)

HTTP Request
GET /api/v1/meetings/met123/schedules/members HTTP/1.1
X-CSRF-TOKEN: IxaKvpOAQJCNo3gJgSYpOduuIKNEd5Zx1R4UR1zGKCgCIlovEC662qPiI6igwkltsgsdALicDcF0EqBcsHp3fmuiHhk0Fm5L
Host: localhost:8080
HTTP Response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 94

{
  "code" : "404",
  "message" : "모임을 찾을 수 없습니다.",
  "validation" : { }
}

4.7. 비회원 일정 조회 - 성공

HTTP Request
GET /api/v1/meetings/met123/schedules/guests/sch123 HTTP/1.1
X-CSRF-TOKEN: rjA2yp9GWM26dHgUVP80j3AzU8sR0qnUp1n1Yiu0QtWqdq5hzwRSrv1-aKmXTR5wN9IA7kgBfqkl45_5xT3AVhzQILCbRMhU
Host: localhost:8080
Table 18. /api/v1/meetings/{meetingUuid}/schedules/guests/{scheduleUuid}
Parameter Description

meetingUuid

모임 UUID

scheduleUuid

일정 UUID

Query Parameters

Unresolved directive in api/schedule.adoc - include::/Users/seungjo/development/dnd-11th-7-backend/build/generated-snippets/schedule-controller-test/guest_schedule_get_success/query-parameters.adoc[]

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
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 337

{
  "scheduleNickname" : "유저",
  "scheduleUuid" : "sch123",
  "meetingStartDate" : "2024-09-06",
  "meetingEndDate" : "2024-09-07",
  "dateOfScheduleList" : [ {
    "startTime" : "2024-09-06T09:00:00",
    "endTime" : "2024-09-06T12:00:00"
  }, {
    "startTime" : "2024-09-07T12:00:00",
    "endTime" : "2024-09-07T15:00:00"
  } ]
}

4.8. 비회원 일정 조회 - 실패 (모임이 존재하지 않는 경우)

HTTP Request
GET /api/v1/meetings/met123/schedules/guests/sch123 HTTP/1.1
X-CSRF-TOKEN: rRUEzAnDHeGh6e7eGalEld9-mb6t8V-_Y08rLECjEJdcDOutmSVi-2v3LNKM2Njpf4Rw8-cftIaUk2qSU3keT3CWcadpOo2U
Host: localhost:8080
Table 19. /api/v1/meetings/{meetingUuid}/schedules/guests/{scheduleUuid}
Parameter Description

meetingUuid

모임 UUID

scheduleUuid

일정 UUID

Query Parameters

Unresolved directive in api/schedule.adoc - include::/Users/seungjo/development/dnd-11th-7-backend/build/generated-snippets/schedule-controller-test/guest_schedule_get_fail/query-parameters.adoc[]

HTTP Response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 94

{
  "code" : "404",
  "message" : "모임을 찾을 수 없습니다.",
  "validation" : { }
}

4.9. 회원 일정 수정 - 성공

HTTP Request
PATCH /api/v1/meetings/met123/schedules/members HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 235
X-CSRF-TOKEN: jcGGKDjFd_uvI-81DbfzNoHS04a1z0oDiB9S-I6dZON4wHggvKDjHFv8QZmCFt4APprHDuDk_uSN_SwusCwxme2rBYcZpUsQ
Host: localhost:8080

{
  "dateOfScheduleList" : [ {
    "startTime" : "2024-09-06T09:00:00",
    "endTime" : "2024-09-06T12:00:00",
    "rank" : 1
  }, {
    "startTime" : "2024-09-06T18:00:00",
    "endTime" : "2024-09-06T21:00:00",
    "rank" : 2
  } ]
}
Table 20. /api/v1/meetings/{meetingUuid}/schedules/members
Parameter Description

meetingUuid

모임 UUID

Table 21. Request Fields
Path Type Description Optional Constraint

dateOfScheduleList

Array

일정 목록

dateOfScheduleList[].startTime

String

일정 시작 시간

dateOfScheduleList[].endTime

String

일정 종료 시간

dateOfScheduleList[].rank

Number

일정 우선순위

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

4.10. 회원 일정 수정 - 실패 (일정을 입력하지 않은 경우)

HTTP Request
PATCH /api/v1/meetings/met123/schedules/members HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
X-CSRF-TOKEN: RQ3bx4KWUfDW0IJ3riP9Xfg3VZqx93j5rBtH-lfKnJVONX56JjvpoeOhMMX7tLASng7JbcsGePvXxx3Uzyl0mWSppa0vBk4Y
Host: localhost:8080

{
  "dateOfScheduleList" : [ ]
}
Table 22. /api/v1/meetings/{meetingUuid}/schedules/members
Parameter Description

meetingUuid

모임 UUID

HTTP Response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 173

{
  "code" : "400",
  "message" : "잘못된 요청입니다.",
  "validation" : {
    "dateOfScheduleList" : "일정 날짜를 최소 1개 이상 입력해주세요."
  }
}
Path Type Description

code

String

에러 코드

message

String

에러 메시지

validation

Object

유효성 검사

validation.dateOfScheduleList

String

일정 날짜 에러 메시지

4.11. 비회원 일정 수정 - 성공

HTTP Request
PATCH /api/v1/meetings/met123/schedules/guests/sch123 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 235
X-CSRF-TOKEN: vn0_d3v-jLd4cuKwRk_bGQZpVzfp7FVM4zQedYmU21MeKbMXiB4NQ06c7oRVQ9rWf2LvKTFcelWI22JhhVJ_QbDw6zAvEdUm
Host: localhost:8080

{
  "dateOfScheduleList" : [ {
    "startTime" : "2024-09-06T09:00:00",
    "endTime" : "2024-09-06T12:00:00",
    "rank" : 1
  }, {
    "startTime" : "2024-09-06T18:00:00",
    "endTime" : "2024-09-06T21:00:00",
    "rank" : 2
  } ]
}
Table 23. /api/v1/meetings/{meetingUuid}/schedules/guests/{scheduleUuid}
Parameter Description

meetingUuid

모임 UUID

scheduleUuid

일정 UUID

Table 24. Request Fields
Path Type Description Optional Constraint

dateOfScheduleList

Array

일정 목록

dateOfScheduleList[].startTime

String

일정 시작 시간

dateOfScheduleList[].endTime

String

일정 종료 시간

dateOfScheduleList[].rank

Number

일정 우선순위

HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

4.12. 비회원 일정 수정 - 실패 (일정을 입력하지 않은 경우)

HTTP Request
PATCH /api/v1/meetings/met123/schedules/guests/sch123 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
X-CSRF-TOKEN: MeBQrXeZgL0DuaAtZHCXVMgis7q-NxgZiN4FvJKmNDJllOrICdNoy0OqtYQuj5AZXF2jMf0XntjcDiw0vrpnjaGTDFNRoIn7
Host: localhost:8080

{
  "dateOfScheduleList" : [ ]
}
Table 25. /api/v1/meetings/{meetingUuid}/schedules/guests/{scheduleUuid}
Parameter Description

meetingUuid

모임 UUID

scheduleUuid

일정 UUID

HTTP Response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 173

{
  "code" : "400",
  "message" : "잘못된 요청입니다.",
  "validation" : {
    "dateOfScheduleList" : "일정 날짜를 최소 1개 이상 입력해주세요."
  }
}
Table 26. Error Response
Path Type Description

code

String

에러 코드

message

String

에러 메시지

validation

Object

유효성 검사

validation.dateOfScheduleList

String

일정 날짜 에러 메시지