OAuth2.0 API
OAuth2.0 인증을 제공하는 Provider를 통해 사용자 로그인을 진행합니다. 현재 지원하는 Provider는 다음과 같습니다.
-
Google
-
Kakao
Token | 전달 방식 |
---|---|
Access token |
리다이렉트 URL의 Query Parameter로 전달 |
Refresh token |
Set-Cookie를 통해 전달 |
로그인 성공 후에는 요청 시 전달한 redirect uri
경로로 리다이렉트
되며, 이때 JWT token
이 함께 전달됩니다.
구글 로그인
HTTP request
GET /oauth2/authorization/google?redirect_uri={redirect_uri} HTTP/1.1
Host: localhost:8080
Query parameters
Parameter | Description |
---|---|
redirect_uri |
로그인 성공 후 리다이렉트 되는 URL |
HTTP response
HTTP/1.1 302 Found
Location: {redirect_uri}?code=ACCESS_TOKEN
Set-Cookie: refresh=REFRESH_TOKEN
카카오 로그인
HTTP request
GET /oauth2/authorization/kakao?redirect_uri={redirect_uri} HTTP/1.1
Host: localhost:8080
Query parameters
Parameter | Description |
---|---|
redirect_uri |
로그인 성공 후 리다이렉트 되는 URL |
HTTP response
HTTP/1.1 302 Found
Location: {redirect_uri}?code=ACCESS_TOKEN
Set-Cookie: refresh=REFRESH_TOKEN
인가 API
액세스 토큰 재발급
액세스 토큰이 만료된 경우 리프레시 토큰
을 이용하여 액세스 토큰
을 재발급 받을 수 있습니다.
HTTP request
POST /api/v1/jwt/refresh HTTP/1.1
Authorization: Bearer OLD_ACCESS_TOKEN
Host: localhost:8080
Cookie: refresh=OLD_REFRESH_TOKEN
Content-Type: application/x-www-form-urlencoded
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 77
{
"status" : 201,
"data" : {
"accessToken" : "NEW_ACCESS_TOKEN"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 데이터 |
|
|
재발급한 액세스 토큰 |
사용자 API
사용자의 정보를 조회하거나 수정할 수 있습니다. Header
의 Authorization
에 사용자의 액세스 토큰
을 포함시켜야 합니다.
사용자 이름 변경
사용자의 이름을 변경합니다.
HTTP request
PUT /api/v1/user/name HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 26
Host: localhost:8080
{
"name" : "홍길동"
}
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: 65
{
"status" : 200,
"message" : "회원 이름 수정 성공"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
사용자 탈퇴
사용자의 탈퇴를 진행합니다. 요청이 완료된 사용자는 더 이상 로그인할 수 없습니다.
HTTP request
DELETE /api/v1/user HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 58
{
"status" : 200,
"message" : "회원 탈퇴 성공"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
성별 정보 조회
사용자의 성별 정보를 조회합니다. 값은 MALE
, FEMALE
중 하나입니다. 값이 없는 경우 404 Not Found
에러가 발생합니다.
HTTP request
GET /api/v1/user/gender HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 60
{
"status" : 200,
"data" : {
"gender" : "MALE"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
성별 정보 |
성별 정보 업데이트
사용자의 성별 정보를 추가하거나 수정합니다. 성별은 MALE
, FEMALE
중 하나입니다.
HTTP request
POST /api/v1/user/gender HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Accept: application/json
Content-Length: 23
Host: localhost:8080
{
"gender" : "MALE"
}
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: 72
{
"status" : 200,
"message" : "회원 성별 정보 등록 성공"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
프로필 이미지 조회
사용자의 프로필 이미지를 조회합니다. 응답 데이터의 URL은 사용자의 이미지 경로
를 나타냅니다.
해당 URL에 GET
요청을 보내면 이미지를 다운로드할 수 있습니다.
HTTP request
GET /api/v1/user/profile HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 88
{
"status" : 200,
"data" : {
"url" : "https://image.storage.com/profile/1"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
프로필 이미지 URL |
프로필 이미지 업데이트
사용자의 프로필 이미지를 업데이트합니다. 이미지는 multipart/form-data
형식으로 전송해야 하며 image
필드에 이미지를 포함시켜야 합니다.
요청 성공 시 AWS S3
에 업로드된 이미지의 URL을 응답 데이터로 반환합니다.
HTTP request
POST /api/v1/user/profile HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer ACCESS_TOKEN
Accept: application/json
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png
image data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 88
{
"status" : 201,
"data" : {
"url" : "https://image.storage.com/profile/1"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
사용자 프로필 이미지 URL |
결혼 API
결혼을 등록하고 관련된 정보를 조회, 수정하는 API를 제공합니다. 결혼 정보는 결혼일과 결혼 예산으로 구성되어 있습니다.
결혼 등록
온보딩 과정에서 결혼을 등록합니다. 결혼 준비중인지에 대한 여부와 결혼일을 전달해야 합니다. 기본적으로 결혼 예산은 0원으로 설정됩니다.
HTTP request
POST /api/v1/wedding HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 55
Host: localhost:8080
{
"weddingDay" : "2033-03-25",
"preparing" : true
}
Request fields
Path | Type | Description |
---|---|---|
|
|
결혼일 |
|
|
결혼 준비중 여부 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 58
{
"status" : 201,
"message" : "결혼 등록 성공"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
결혼일 조회
사용자의 결혼일을 조회합니다.
HTTP request
GET /api/v1/wedding/day HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 135
{
"status" : 200,
"message" : "결혼일 조회 성공",
"data" : {
"weddingDay" : "2033-03-25",
"preparing" : true
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
|
|
결혼일 |
|
|
결혼 준비중 여부 |
결혼일 수정
사용자의 결혼일을 수정합니다.
HTTP request
PUT /api/v1/wedding/day HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 55
Host: localhost:8080
{
"weddingDay" : "2033-03-25",
"preparing" : true
}
Request fields
Path | Type | Description |
---|---|---|
|
|
결혼일 |
|
|
결혼 준비중 여부 |
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: 61
{
"status" : 200,
"message" : "결혼일 수정 성공"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
결혼 예산 조회
사용자의 결혼 예산을 조회합니다.
HTTP request
GET /api/v1/wedding/budget HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 106
{
"status" : 200,
"message" : "결혼 예산 조회 성공",
"data" : {
"budget" : 1000000
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
|
|
결혼 예산 |
결혼 예산 수정
사용자의 결혼 예산을 수정합니다.
HTTP request
PUT /api/v1/wedding/budget HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 24
Host: localhost:8080
{
"budget" : 1000000
}
Request fields
Path | Type | Description |
---|---|---|
|
|
결혼 예산 |
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: 65
{
"status" : 200,
"message" : "결혼 예산 수정 성공"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
응답 상태 코드 |
|
|
응답 메시지 |
체크리스트 API
사용자 체크리스트 조회 및 온보딩 체크리스트 사전 등록이 가능합니다.
이를 위해서는 Header
의 Authorization
에 사용자의 액세스 토큰
을 포함시켜야 합니다.
체크리스트 조회 (서브 아이템 포함)
사용자의 전체 체크리스트
를 조회할 수 있습니다.
요청 시 query
값은 true
로 설정합니다.
사용자가 등록한 체크리스트 아이템과 체크리스트 서브 아이템 목록 전체를 조회할 수 있습니다.
응답 데이터는 체크리스트 아이템 일정 날짜 (checkDate)
에 맞추어 오름차순으로 정렬된 데이터이며, 일정 날짜가 입력되지 않은 데이터가 제일 앞쪽에 위치합니다.
HTTP request
GET /api/v1/checklist?subitem=true HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Query parameters
Parameter | Description |
---|---|
|
서브아이템 조회 여부 |
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: 454
{
"status" : 200,
"data" : [ {
"checklistItem" : {
"id" : 1,
"title" : "title",
"checkDate" : "2023-04-18",
"startTime" : "01:01:01",
"endTime" : "12:11:14",
"place" : "place",
"memo" : "memo"
},
"checklistSubItems" : [ {
"id" : 1,
"contents" : "contents 1",
"isChecked" : false
}, {
"id" : 2,
"contents" : "contents 2",
"isChecked" : false
} ]
} ]
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
체크리스트 아이템 아이디 |
|
|
체크리스트 아이템 제목 |
|
|
체크리스트 아이템 일정 날짜 |
|
|
체크리스트 아이템 일정 시작 시간 |
|
|
체크리스트 아이템 일정 종료 시간 |
|
|
체크리스트 아이템 일정 장소 |
|
|
체크리스트 아이템 메모 |
|
|
체크리스트 서브 아이템 아이디 |
|
|
체크리스트 서브 아이템 내용 |
|
|
체크리스트 서브 아이템 체크 여부 |
체크리스트 조회 (서브 아이템 미포함)
사용자의 전체 체크리스트
를 조회할 수 있습니다.
(서브 아이템 미포함)
요청 시 query
값은 false
로 설정합니다.
사용자가 등록한 체크리스트 아이템 목록 전체를 조회할 수 있습니다.
응답 데이터는 체크리스트 아이템 일정 날짜 (checkDate)
에 맞추어 오름차순으로 정렬된 데이터이며, 일정 날짜가 입력되지 않은 데이터가 제일 앞쪽에 위치합니다.
HTTP request
GET /api/v1/checklist?subitem=false HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Query parameters
Parameter | Description |
---|---|
|
서브아이템 조회 여부 |
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: 212
{
"status" : 200,
"data" : [ {
"id" : 1,
"title" : "title",
"checkDate" : "2023-04-18",
"startTime" : "01:01:01",
"endTime" : "12:11:14",
"place" : "place",
"memo" : "memo"
} ]
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
체크리스트 아이템 아이디 |
|
|
체크리스트 아이템 제목 |
|
|
체크리스트 아이템 일정 날짜 |
|
|
체크리스트 아이템 일정 시작 시간 |
|
|
체크리스트 아이템 일정 종료 시간 |
|
|
체크리스트 아이템 일정 장소 |
|
|
체크리스트 아이템 메모 |
온보딩 체크리스트 사전 등록
온보딩 페이지에서 아직 진행하지 않은 일정에 대해 체크리스트 사전 등록
이 가능합니다.
진행하지 않은 일정에 대해서는 아래에 정의된 String 값으로 요청을 보내야 합니다.
-
상견례 MEETING
-
예식장 WEDDING_HALL
-
신혼여행 HONEYMOON
-
스튜디오 STUDIO
-
드레스 DRESS
-
메이크업 MAKEUP
-
예물 WEDDING_GIFT
HTTP request
POST /api/v1/checklist/pre-check HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 53
Host: localhost:8080
{
"preChecklistItems" : [ "MAKEUP", "HONEYMOON" ]
}
Request fields
Path | Type | Description |
---|---|---|
|
|
선택되지 않은 사전 등록 아이템 리스트 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 192
{
"status" : 201,
"message" : "온보딩 체크리스트 등록 성공",
"data" : [ {
"id" : 1,
"title" : "메이크업"
}, {
"id" : 2,
"title" : "신혼여행"
} ]
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
등록된 체크리스트 아이템 아이디 |
|
|
등록된 체크리스트 아이템 제목 |
체크리스트 아이템 API
체크리스트 아이템 등록, 수정, 삭제, 조회가 가능합니다.
관련된 모든 요청에서 사용자 정보 식별을 위해 Header
의 Authorization
에 사용자의 액세스 토큰
을 포함시켜야 합니다.
체크리스트 아이템 등록
체크리스트 아이템 등록이 가능하며 필요한 경우 체크리스트 서브 아이템과 한꺼번에 등록할 수도 있습니다.
체크리스트 아이템의 title
을 제외한 나머지 정보는 필수 값이 아닙니다.
HTTP request
POST /api/v1/checklist/item HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 287
Host: localhost:8080
{
"checklistItem" : {
"title" : "title",
"checkDate" : "2020-10-10",
"startTime" : "10:10:10",
"endTime" : "12:12:12",
"place" : "place",
"memo" : "memo"
},
"checklistSubItems" : [ {
"contents" : "contents 1"
}, {
"contents" : "contents 2"
} ]
}
Request fields
Path | Type | Description |
---|---|---|
|
|
등록할 체크리스트 아이템 제목 (* required) |
|
|
등록할 체크리스트 아이템 일정 날짜 |
|
|
등록할 체크리스트 아이템 일정 시작 시간 |
|
|
등록할 체크리스트 아이템 일정 종료 시간 |
|
|
등록할 체크리스트 아이템 일정 장소 |
|
|
등록할 체크리스트 아이템 메모 |
|
|
등록할 체크리스트 서브 아이템 내용 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 507
{
"status" : 201,
"message" : "체크리스트 아이템 등록 성공",
"data" : {
"checklistItem" : {
"id" : 1,
"title" : "title",
"checkDate" : "2020-10-10",
"startTime" : "10:10:10",
"endTime" : "12:12:12",
"place" : "place",
"memo" : "memo"
},
"checklistSubItems" : [ {
"id" : 1,
"contents" : "contents 1",
"isChecked" : false
}, {
"id" : 2,
"contents" : "contents 2",
"isChecked" : false
} ]
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
등록된 체크리스트 아이템 아이디 |
|
|
등록된 체크리스트 아이템 제목 |
|
|
등록된 체크리스트 아이템 일정 날짜 |
|
|
등록된 체크리스트 아이템 일정 시작 시간 |
|
|
등록된 체크리스트 아이템 일정 종료 시간 |
|
|
등록된 체크리스트 아이템 일정 장소 |
|
|
등록된 체크리스트 아이템 메모 |
|
|
등록된 체크리스트 서브 아이템 아이디 |
|
|
등록된 체크리스트 서브 아이템 내용 |
|
|
등록된 체크리스트 서브 아이템 체크 여부 |
체크리스트 아이템 상세 조회
체크리스트 아이템 항목에 대한 상세 조회가 가능하며, 연결되어 있는 체크리스트 서브 아이템의 정보도 함께 응답 데이터에 포함됩니다.
HTTP request
GET /api/v1/checklist/item/1 HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
체크리스트 아이템 아이디 |
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: 450
{
"status" : 200,
"data" : {
"checklistItem" : {
"id" : 1,
"title" : "title",
"checkDate" : "2020-10-10",
"startTime" : "10:10:10",
"endTime" : "12:12:12",
"place" : "place",
"memo" : "memo"
},
"checklistSubItems" : [ {
"id" : 1,
"contents" : "contents 1",
"isChecked" : false
}, {
"id" : 2,
"contents" : "contents 2",
"isChecked" : false
} ]
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
체크리스트 아이템 아이디 |
|
|
체크리스트 아이템 제목 |
|
|
체크리스트 아이템 일정 날짜 |
|
|
체크리스트 아이템 일정 시작 시간 |
|
|
체크리스트 아이템 일정 종료 시간 |
|
|
체크리스트 아이템 일정 장소 |
|
|
체크리스트 아이템 메모 |
|
|
체크리스트 서브 아이템 아이디 |
|
|
체크리스트 서브 아이템 내용 |
|
|
체크리스트 서브 아이템 체크 여부 |
체크리스트 아이템 수정
체크리스트 아이템 및 연결되어 있는 체크리스트 서브 아이템의 수정이 가능합니다.
PUT
메소드를 사용하기 때문에 수정을 원하는 체크리스트 아이템 및 서브 아이템의 전체 데이터
를 모두 포함하여 요청해야 합니다.
HTTP request
PUT /api/v1/checklist/item/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 365
Host: localhost:8080
{
"checklistItem" : {
"title" : "title",
"checkDate" : "2020-10-10",
"startTime" : "10:10:10",
"endTime" : "12:12:12",
"place" : "place",
"memo" : "memo"
},
"checklistSubItems" : [ {
"id" : 1,
"contents" : "contents 1",
"isChecked" : false
}, {
"id" : 2,
"contents" : "contents 2",
"isChecked" : false
} ]
}
Path parameters
Parameter | Description |
---|---|
|
체크리스트 아이템 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
수정할 체크리스트 아이템 제목 |
|
|
수정할 체크리스트 아이템 일정 날짜 |
|
|
수정할 체크리스트 아이템 일정 시작 시간 |
|
|
수정할 체크리스트 아이템 일정 종료 시간 |
|
|
수정할 체크리스트 아이템 일정 장소 |
|
|
수정할 체크리스트 아이템 메모 |
|
|
수정할 체크리스트 서브 아이템 아이디 |
|
|
수정할 체크리스트 서브 아이템 내용 |
|
|
수정할 체크리스트 서브 아이템 체크 여부 |
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: 507
{
"status" : 200,
"message" : "체크리스트 아이템 수정 성공",
"data" : {
"checklistItem" : {
"id" : 1,
"title" : "title",
"checkDate" : "2020-10-10",
"startTime" : "10:10:10",
"endTime" : "12:12:12",
"place" : "place",
"memo" : "memo"
},
"checklistSubItems" : [ {
"id" : 1,
"contents" : "contents 1",
"isChecked" : false
}, {
"id" : 2,
"contents" : "contents 2",
"isChecked" : false
} ]
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
수정된 체크리스트 아이템 아이디 |
|
|
수정된 체크리스트 아이템 제목 |
|
|
수정된 체크리스트 아이템 일정 날짜 |
|
|
수정된 체크리스트 아이템 일정 시작 시간 |
|
|
수정된 체크리스트 아이템 일정 종료 시간 |
|
|
수정된 체크리스트 아이템 일정 장소 |
|
|
수정된 체크리스트 아이템 메모 |
|
|
수정된 체크리스트 서브 아이템 아이디 |
|
|
수정된 체크리스트 서브 아이템 내용 |
|
|
수정된 체크리스트 서브 아이템 체크 여부 |
체크리스트 아이템 삭제
체크리스트 아이템 삭제가 가능합니다. 체크리스트 아이템을 삭제할 경우 연결되어 있는 서브 아이템도 함께 삭제됩니다.
HTTP request
DELETE /api/v1/checklist/item/1 HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
체크리스트 아이템 아이디 |
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: 77
{
"status" : 200,
"message" : "체크리스트 아이템 삭제 성공"
}
체크리스트 서브 아이템 API
체크리스트 서브 아이템 등록, 체크 여부 수정, 삭제가 가능합니다.
관련된 모든 요청에서 사용자 정보 식별을 위해 Header
의 Authorization
에 사용자의 액세스 토큰
을 포함시켜야 합니다.
체크리스트 서브 아이템 등록
체크리스트 서브 아이템 등록이 가능합니다.
서브 아이템 등록 시 체크 여부는 false
로 등록됩니다.
HTTP request
POST /api/v1/checklist/item/1/sub-item HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 66
Host: localhost:8080
{
"id" : null,
"contents" : "contents",
"isChecked" : null
}
Path parameters
Parameter | Description |
---|---|
|
체크리스트 아이템 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
등록할 체크리스트 서브 아이템 내용 (* required) |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 168
{
"status" : 201,
"message" : "체크리스트 서브아이템 등록 성공",
"data" : {
"id" : 1,
"contents" : "contents",
"isChecked" : false
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
등록된 체크리스트 서브 아이템 아이디 |
|
|
등록된 체크리스트 서브 아이템 내용 |
|
|
등록된 체크리스트 서브 아이템 체크 여부 |
체크리스트 서브 아이템 체크 여부 수정
체크리스트 서브 아이템 체크 여부 수정이 가능합니다. 요청 성공 시 수정된 서브 아이템의 정보가 반환됩니다.
HTTP request
PUT /api/v1/checklist/item/1/sub-item/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 25
Host: localhost:8080
{
"isChecked" : false
}
Path parameters
Parameter | Description |
---|---|
|
체크리스트 아이템 아이디 |
|
체크리스트 서브 아이템 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
수정할 체크리스트 서브 아이템 체크 여부 |
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: 168
{
"status" : 200,
"message" : "체크리스트 서브아이템 수정 성공",
"data" : {
"id" : 1,
"contents" : "contents",
"isChecked" : false
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
수정된 체크리스트 서브 아이템 아이디 |
|
|
수정된 체크리스트 서브 아이템 내용 |
|
|
수정된 체크리스트 서브 아이템 체크 여부 |
체크리스트 서브 아이템 삭제
체크리스트 서브 아이템 삭제가 가능합니다.
HTTP request
DELETE /api/v1/checklist/item/1/sub-item/1 HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
체크리스트 아이템 아이디 |
|
체크리스트 서브 아이템 아이디 |
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: 83
{
"status" : 200,
"message" : "체크리스트 서브아이템 삭제 성공"
}
예산 API
예산 조회
현재 남아있는 예산 조회가 가능합니다.
사용자 정보 식별을 위해 Header
의 Authorization
에 사용자의 액세스 토큰
을 포함시켜야 합니다.
HTTP request
GET /api/v1/budget HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 62
{
"status" : 200,
"data" : {
"budget" : 20000000
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
현재 남아있는 예산 |
거래 내역 API
사용자 거래 내역 등록, 조회, 삭제, 수정이 가능합니다.
이를 위해서는 Header
의 Authorization
에 사용자의 액세스 토큰
을 포함시켜야 합니다.
거래 내역 상세 조회
거래 내역 상세 내용을 조회할 수 있습니다.
HTTP request
GET /api/v1/transaction/1 HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
거래 내역 아이디 |
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: 332
{
"status" : 200,
"data" : {
"id" : 1,
"title" : "test title",
"agency" : "test agency",
"transactionDate" : "2023-04-18",
"payment" : -1000000,
"balance" : 2000000,
"paymentType" : "CARD",
"accountHolder" : "좋은 웨딩홀",
"accountNumber" : "123-123-1234",
"memo" : "test memo"
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
거래 내역 아이디 |
|
|
제목 |
|
|
계약 업체 |
|
|
계약 날짜 |
|
|
계약금 |
|
|
잔금 |
|
|
거래 구분 |
|
|
예금주 |
|
|
계좌 번호 |
|
|
메모 |
거래 내역 전체 리스트 조회
사용자의 전체 거래 내역 리스트를 조회할 수 있습니다. 거래 일자 순으로 정렬된 데이터가 전달됩니다.
HTTP request
GET /api/v1/transaction HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 379
{
"status" : 200,
"data" : [ {
"id" : 1,
"title" : "test title1",
"agency" : "test agency1",
"transactionDate" : "2023-04-18",
"payment" : -1000000,
"paymentType" : "CARD"
}, {
"id" : 2,
"title" : "test title2",
"agency" : "test agency2",
"transactionDate" : "2023-04-18",
"payment" : -2000000,
"paymentType" : "CASH"
} ]
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
거래 내역 아이디 |
|
|
제목 |
|
|
계약 업체 |
|
|
계약 날짜 |
|
|
계약금 |
|
|
거래 구분 (CARD / CASH) |
거래 내역 등록
거래 내역 등록이 가능합니다.
거래 구분 데이터는 CARD
와 CASH
만 가능합니다.
HTTP request
POST /api/v1/transaction HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 265
Host: localhost:8080
{
"title" : "test title",
"agency" : "test agency",
"transactionDate" : "2023-04-18",
"payment" : -1000000,
"balance" : 2000000,
"paymentType" : "CARD",
"accountHolder" : "좋은 웨딩홀",
"accountNumber" : "123-123-1234",
"memo" : "test memo"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
제목 (* required) |
|
|
계약 업체 (* required) |
|
|
계약 날짜 (* required) |
|
|
계약금 (* required) |
|
|
잔금 |
|
|
거래 구분 (* required) |
|
|
예금주 |
|
|
계좌 번호 |
|
|
메모 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 373
{
"status" : 201,
"message" : "예산표 등록 성공",
"data" : {
"id" : 1,
"title" : "test title",
"agency" : "test agency",
"transactionDate" : "2023-04-18",
"payment" : -1000000,
"balance" : 2000000,
"paymentType" : "CARD",
"accountHolder" : "좋은 웨딩홀",
"accountNumber" : "123-123-1234",
"memo" : "test memo"
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
등록된 거래 내역 아이디 |
|
|
제목 |
|
|
계약 업체 |
|
|
계약 날짜 |
|
|
계약금 |
|
|
잔금 |
|
|
거래 구분 |
|
|
예금주 |
|
|
계좌 번호 |
|
|
메모 |
거래 내역 수정
거래 내역 수정이 가능합니다.
PUT
메소드를 사용하기 때문에 수정을 원하는 거래 내역의 전체 데이터
를 모두 포함하여 요청해야 합니다.
HTTP request
PUT /api/v1/transaction/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 265
Host: localhost:8080
{
"title" : "test title",
"agency" : "test agency",
"transactionDate" : "2023-04-18",
"payment" : -1000000,
"balance" : 2000000,
"paymentType" : "CARD",
"accountHolder" : "좋은 웨딩홀",
"accountNumber" : "123-123-1234",
"memo" : "test memo"
}
Path parameters
Parameter | Description |
---|---|
|
수정할 거래 내역 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
제목 |
|
|
계약 업체 |
|
|
계약 날짜 |
|
|
계약금 |
|
|
잔금 |
|
|
거래 구분 |
|
|
예금주 |
|
|
계좌 번호 |
|
|
메모 |
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: 332
{
"status" : 200,
"data" : {
"id" : 1,
"title" : "test title",
"agency" : "test agency",
"transactionDate" : "2023-04-18",
"payment" : -1000000,
"balance" : 2000000,
"paymentType" : "CARD",
"accountHolder" : "좋은 웨딩홀",
"accountNumber" : "123-123-1234",
"memo" : "test memo"
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
수정된 거래 내역 아이디 |
|
|
제목 |
|
|
계약 업체 |
|
|
계약 날짜 |
|
|
계약금 |
|
|
잔금 |
|
|
거래 구분 |
|
|
예금주 |
|
|
계좌 번호 |
|
|
메모 |
거래 내역 삭제
거래 내역 삭제가 가능합니다.
HTTP request
DELETE /api/v1/transaction/1 HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
삭제할 거래 내역 아이디 |
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: 61
{
"status" : 200,
"message" : "예산표 삭제 성공"
}
계약서 API
계약서 등록, 수정, 삭제, 조회가 가능합니다.
관련된 모든 요청에서 사용자 정보 식별을 위해 Header
의 Authorization
에 사용자의 액세스 토큰
을 포함시켜야 합니다.
계약서 상세 조회
계약서 상세 조회가 가능합니다.
HTTP request
GET /api/v1/contract/1 HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
계약서 아이디 |
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: 254
{
"status" : 200,
"data" : {
"id" : 1,
"title" : "test_title",
"contents" : "test_contents",
"contractDate" : "2023-04-18",
"contractStatus" : "VERBAL",
"file" : "https://storage.com/contract/1",
"memo" : "test_memo"
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
계약서 아이디 |
|
|
계약서 제목 |
|
|
계약 내용 |
|
|
계약 날짜 |
|
|
계약 상태 |
|
|
계약서 파일 url |
|
|
메모 |
계약서 리스트 조회
사용자가 등록한 계약서 리스트 조회가 가능합니다. 계약 날짜 순으로 정렬된 데이터가 전달됩니다.
HTTP request
GET /api/v1/contract HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
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
Content-Length: 275
{
"status" : 200,
"data" : [ {
"id" : 1,
"title" : "test_title",
"contractDate" : "2023-04-18",
"contractStatus" : "IN_PROGRESS"
}, {
"id" : 2,
"title" : "test_title2",
"contractDate" : "2023-04-18",
"contractStatus" : "COMPLETE"
} ]
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
계약서 아이디 |
|
|
계약서 제목 |
|
|
계약 날짜 |
|
|
계약 상태 |
계약서 등록
계약서 파일과 내용 등록이 가능합니다.
계약 상태는 다음 4가지 값만 등록 가능합니다.
-
계약 완료: COMPLETE
-
계약 중: IN_PROGRESS
-
구두 계약: VERBAL
-
가계약: PROVISIONAL
multipart/form-data
로 file
과 data
를 포함하여 요청을 보내야 합니다.
HTTP request
POST /api/v1/contract HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=contract.png
Content-Type: contract/png
contract data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=data; filename=contract
Content-Type: application/json
{"title":"test_title","contents":"test_contents","contractDate":"2023-04-18","contractStatus":"VERBAL","memo":"test_memo"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request parts
Part | Description |
---|---|
|
계약서 파일 |
|
계약서 전체 내용 |
Request part-data-fields
Path | Type | Description |
---|---|---|
|
|
계약서 제목 (* required) |
|
|
계약 내용 (* required) |
|
|
계약 날짜 (* required) |
|
|
계약 상태 (* required) |
|
|
메모 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 295
{
"status" : 201,
"message" : "계약서 등록 성공",
"data" : {
"id" : 1,
"title" : "test_title",
"contents" : "test_contents",
"contractDate" : "2023-04-18",
"contractStatus" : "VERBAL",
"file" : "https://storage.com/contract/1",
"memo" : "test_memo"
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
등록된 계약서 아이디 |
|
|
계약서 제목 |
|
|
계약 내용 |
|
|
계약 날짜 |
|
|
계약 상태 |
|
|
계약서 파일 url |
|
|
메모 |
계약서 파일 수정
계약서에 들어가는 파일을 수정할 수 있습니다.
파일 수정은 multipart/form-data
사용을 위해 POST
방식을 이용합니다.
HTTP request
POST /api/v1/contract/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=contract.png
Content-Type: contract/png
contract data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Path parameters
Parameter | Description |
---|---|
|
계약서 아이디 |
Request parts
Part | Description |
---|---|
|
수정할 계약서 파일 |
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: 302
{
"status" : 200,
"message" : "계약서 파일 수정 성공",
"data" : {
"id" : 1,
"title" : "test_title",
"contents" : "test_contents",
"contractDate" : "2023-04-18",
"contractStatus" : "VERBAL",
"file" : "https://storage.com/contract/1",
"memo" : "test_memo"
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
계약서 아이디 |
|
|
계약서 제목 |
|
|
계약 내용 |
|
|
계약 날짜 |
|
|
계약 상태 |
|
|
계약서 파일 url |
|
|
메모 |
계약서 내용 수정
파일을 제외한 계약서 내용에 대한 수정이 가능합니다.
PUT
메소드를 사용하기 때문에 수정을 원하는 계약서의 전체 데이터(파일 정보 제외)
를 모두 포함하여 요청해야 합니다.
HTTP request
PUT /api/v1/contract/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer ACCESS_TOKEN
Content-Length: 148
Host: localhost:8080
{
"title" : "test_title",
"contents" : "test_contents",
"contractDate" : "2023-04-18",
"contractStatus" : "VERBAL",
"memo" : "test_memo"
}
Path parameters
Parameter | Description |
---|---|
|
계약서 아이디 |
Request fields
Path | Type | Description |
---|---|---|
|
|
계약서 제목 |
|
|
계약 내용 |
|
|
계약 날짜 |
|
|
계약 상태 |
|
|
메모 |
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: 302
{
"status" : 200,
"message" : "계약서 내용 수정 성공",
"data" : {
"id" : 1,
"title" : "test_title",
"contents" : "test_contents",
"contractDate" : "2023-04-18",
"contractStatus" : "VERBAL",
"file" : "https://storage.com/contract/1",
"memo" : "test_memo"
}
}
Response fields-data
Path | Type | Description |
---|---|---|
|
|
수정된 계약서 아이디 |
|
|
계약서 제목 |
|
|
계약 내용 |
|
|
계약 날짜 |
|
|
계약 상태 |
|
|
계약서 파일 url |
|
|
메모 |
계약서 삭제
계약서 삭제가 가능하며, AWS S3 Storage에 저장되어 있는 계약서 파일도 함께 삭제됩니다.
HTTP request
DELETE /api/v1/contract/1 HTTP/1.1
Authorization: Bearer ACCESS_TOKEN
Host: localhost:8080
Path parameters
Parameter | Description |
---|---|
|
계약서 아이디 |
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: 61
{
"status" : 200,
"message" : "계약서 삭제 성공"
}