인증

 — 공통 — 

보호소 로그인

Request

HTTP request
POST /api/auth/shelters/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 91
X-CSRF-TOKEN: SlOHpQIjYv3jFQ9_tV7wenZkVvTtNOlmOzGrrDzZD_kEakjGf2DhxGBHAc3Odj1K1HPEQxdce5XbVY1LXleZngm9OchlC3D0
Host: localhost:8080

{
  "email" : "email@email.com",
  "password" : "password123!",
  "deviceToken" : "token"
}
Request fields
필드명 타입 필수값 제약 설명

email

String

true

보호소 이메일

password

String

true

보호소 패스워드

deviceToken

String

fcm device token

Response

HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: shelterRefreshToken=refreshToken; Path=/api/auth; Domain=.anifriends.site; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
Content-Length: 78

{
  "userId" : 1,
  "role" : "ROLE_SHELTER",
  "accessToken" : "accessToken"
}
Response fields
Path Type Description

userId

Number

사용자 ID

role

String

사용자 역할

accessToken

String

액세스 토큰

Response cookies
Name Description

shelterRefreshToken

리프레시 토큰

봉사자 로그인

Request

HTTP request
POST /api/auth/volunteers/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 91
X-CSRF-TOKEN: Q_258L0_YAe1ue5v9uL6Dgo-zzRIsd3K27Ok6f7wxikFvKjpIsyKk4VZATaY3Npbl8_Oa28H4g150rzn7tWW0MqW9h03j5nd
Host: localhost:8080

{
  "email" : "email@email.com",
  "password" : "password123!",
  "deviceToken" : "token"
}
Request fields
필드명 타입 필수값 제약 설명

email

String

true

봉사자 이메일

password

String

true

봉사자 패스워드

deviceToken

String

fcm device token

Response

HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: volunteerRefreshToken=refreshToken; Path=/api/auth; Domain=.anifriends.site; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
Content-Length: 80

{
  "userId" : 1,
  "role" : "ROLE_VOLUNTEER",
  "accessToken" : "accessToken"
}
Response fields
Path Type Description

userId

Number

사용자 ID

role

String

사용자 역할

accessToken

String

액세스 토큰

Response cookies
Name Description

volunteerRefreshToken

리프레시 토큰

봉사자 액세스 토큰 갱신

Request

HTTP request
POST /api/auth/volunteers/refresh HTTP/1.1
X-CSRF-TOKEN: yxR5pWbpLSQfeGe0ShEkeSl1mf5xuZA_V3a5FwHg4sJWGVu4qSEfxl7ZHhcyHleNKTwQHRsTtJ8ViPUSZhLddTaGgfBmKGuI
Host: localhost:8080
Cookie: volunteerRefreshToken=eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3NDIwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.u9z8JGbz1B6WfHloLAZpSoXAxh-6Z8RO-nfw1oxzlpda8H0OamkciSsr_KjxXnc7
Content-Type: application/x-www-form-urlencoded
Request cookies
Name Description

volunteerRefreshToken

봉사자 리프레시 토큰

Response

HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: volunteerRefreshToken=eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3NDIwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.u9z8JGbz1B6WfHloLAZpSoXAxh-6Z8RO-nfw1oxzlpda8H0OamkciSsr_KjxXnc7; Path=/api/auth; Domain=.anifriends.site; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
Content-Length: 267

{
  "userId" : 1,
  "role" : "ROLE_VOLUNTEER",
  "accessToken" : "eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.-0K1KegFg4wFr8pYuSpSIiQyhEElUia3kEk9A5Qu1lrPIPlPzUhUaZ-DSor1XAqi"
}
Response cookies
Name Description

volunteerRefreshToken

갱신된 리프레시 토큰

Response fields
Path Type Description

userId

Number

사용자 ID

role

String

사용자 역할

accessToken

String

갱신된 액세스 토큰

보호소 액세스 토큰 갱신

Request

HTTP request
POST /api/auth/shelters/refresh HTTP/1.1
X-CSRF-TOKEN: X3GMenbZjChDNJXHg9LL0gzU7lF5kdAVBQsvptnSzk3u0LVRbBPoTxLhvBhuAfb3sv__tG-ww2lAoeQ4PW0dnuvi-nvestQy
Host: localhost:8080
Cookie: shelterRefreshToken=eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3NDIwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.u9z8JGbz1B6WfHloLAZpSoXAxh-6Z8RO-nfw1oxzlpda8H0OamkciSsr_KjxXnc7
Content-Type: application/x-www-form-urlencoded
Request cookies
Name Description

shelterRefreshToken

보호소 리프레시 토큰

Response

HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: shelterRefreshToken=eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3NDIwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.u9z8JGbz1B6WfHloLAZpSoXAxh-6Z8RO-nfw1oxzlpda8H0OamkciSsr_KjxXnc7; Path=/api/auth; Domain=.anifriends.site; Secure; HttpOnly; SameSite=None
Content-Type: application/json;charset=UTF-8
Content-Length: 267

{
  "userId" : 1,
  "role" : "ROLE_VOLUNTEER",
  "accessToken" : "eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.-0K1KegFg4wFr8pYuSpSIiQyhEElUia3kEk9A5Qu1lrPIPlPzUhUaZ-DSor1XAqi"
}
Response cookies
Name Description

shelterRefreshToken

갱신된 보호소 리프레시 토큰

Response fields
Path Type Description

userId

Number

사용자 ID

role

String

사용자 역할

accessToken

String

갱신된 액세스 토큰

봉사자 로그아웃

Request

HTTP request
POST /api/auth/volunteers/logout HTTP/1.1
X-CSRF-TOKEN: jSbgfeFiel4dFEVPfsx1_rtYKM1YEddNslrN-KC51gMSAuhJuUXVGNhbS24wcnMtRuFBy9htBaxoJuRgi2z-wcPdsGB0NYt-
Host: localhost:8080
Cookie: volunteerRefreshToken=eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3NDIwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.u9z8JGbz1B6WfHloLAZpSoXAxh-6Z8RO-nfw1oxzlpda8H0OamkciSsr_KjxXnc7
Content-Type: application/x-www-form-urlencoded
Request cookies
Name Description

volunteerRefreshToken

봉사자 리프레시 토큰 쿠키

Response

HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: volunteerRefreshToken=; Path=/api/auth; Domain=.anifriends.site; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Response cookies
Name Description

volunteerRefreshToken

리프레시 토큰 쿠키 무효화 설정 쿠키

보호소 로그아웃

Request

HTTP request
POST /api/auth/shelters/logout HTTP/1.1
X-CSRF-TOKEN: MYWVVCe4-yp1I4bYImBJrHgCLEAq3uHQ9HyCLb00zllH65BjU7StYheJzUhYQrPtQU19yh47AXgf79f9wB3jG4hW_WF33qFR
Host: localhost:8080
Cookie: shelterRefreshToken=eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTQsInN1YiI6IjEiLCJleHAiOjE3MDI3NDIwMTQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.u9z8JGbz1B6WfHloLAZpSoXAxh-6Z8RO-nfw1oxzlpda8H0OamkciSsr_KjxXnc7
Content-Type: application/x-www-form-urlencoded
Request cookies
Name Description

shelterRefreshToken

보호소 리프레시 토큰 쿠키

Response

HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: shelterRefreshToken=; Path=/api/auth; Domain=.anifriends.site; Max-Age=0; Expires=Thu, 1 Jan 1970 00:00:00 GMT; Secure; HttpOnly; SameSite=None
Response cookies
Name Description

shelterRefreshToken

리프레시 토큰 쿠키 무효화 설정 쿠키

봉사자

 — 공통 — 

봉사자 이메일 중복 확인

Request

HTTP request
POST /api/volunteers/email HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 32
X-CSRF-TOKEN: MrReIl_aDZTYUt7aejKRG8Kl_a2azgIQyqqHi2AT2BCmoYr8UNZmQWm8b_b1Zey-Qh-lK_LA0JWq-mc9-prhuFUguSWVmbnO
Host: localhost:8080

{
  "email" : "asdf@gmail.com"
}
Request fields
필드명 타입 필수값 제약 설명

email

String

true

@를 포함한 이메일 형식

사용자 이메일

Response

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: 28

{
  "isDuplicated" : false
}
Response fields
Path Type Description

isDuplicated

Boolean

이메일 중복 여부

봉사자 회원 가입

Request

HTTP request
POST /api/volunteers HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 169
X-CSRF-TOKEN: zrYifKZKy74C56HEvR_EDcRCFiUorcmMZOGs3814yp_hpXg1qtAXHsJ6_ocv3pHyjzLwPqEjO0RKnqihV4PKvfoa8qbUkx4N
Host: localhost:8080

{
  "email" : "asdf@gmail.com",
  "password" : "asdf1234",
  "name" : "김봉사",
  "birthDate" : "1999-03-23",
  "phoneNumber" : "010-1234-5678",
  "gender" : "MALE"
}
Request fields
필드명 타입 필수값 제약 설명

email

String

true

이메일

password

String

true

비밀번호

name

String

true

이름

birthDate

String

true

생년월일

phoneNumber

String

true

전화번호

gender

String

true

성별

Response

HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/volunteers/1
Content-Type: application/json;charset=UTF-8
Content-Length: 23

{
  "volunteerId" : 1
}
Response fields
Path Type Description

volunteerId

Number

생성된 봉사자 ID

Response headers
Name Description

Location

생성된 리소스 위치

 — 봉사자 — 

봉사자 마이 페이지 조회

Request

HTTP request
GET /api/volunteers/me HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dM9azJlTP8qKrQhIKV2UjurRGy9Cq_2XtAjb6zRrXiy6wUoekeDhG4Ge1MF8kJ3z
X-CSRF-TOKEN: cgJzarx2sB_hvYUr7CFcVCKOuNGDCP3ngidLCWzNc14eV0mVQzFADItOhijMj-Qf3wxoZBS7lem3O57K5BN8a1iuRG56M3z2
Host: localhost:8080
Request headers
Name Description

Authorization

액세스 토큰

Response

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: 300

{
  "volunteerId" : 1,
  "volunteerEmail" : "asdf@gmail.com",
  "volunteerName" : "김봉사",
  "volunteerBirthDate" : "1999-03-23",
  "volunteerPhoneNumber" : "010-1234-5678",
  "volunteerTemperature" : 36,
  "completedVolunteerCount" : 0,
  "volunteerImageUrl" : "",
  "volunteerGender" : "MALE"
}
Response fields
Path Type Description

volunteerId

Number

봉사자 ID

volunteerEmail

String

이메일

volunteerName

String

이름

volunteerBirthDate

String

생년월일

volunteerPhoneNumber

String

전화번호

volunteerTemperature

Number

온도

completedVolunteerCount

Number

봉사 횟수

volunteerImageUrl

String

프로필 이미지 URL

volunteerGender

String

성별

봉사자 비밀번호 변경

Request

HTTP request
PATCH /api/volunteers/me/passwords HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.XqcUaWOENeAdsvdXIfL7jRqDTFP7NSMPbiuhnwRhpXYG4vntnPOwU4zwApPZcBiU
Content-Length: 76
X-CSRF-TOKEN: _TyPSSzFNeuwq29eAOckYyyFZXs4vObIJfYN1fPcdCM0CGX3yQ7ufxvyBI6dzV5nMMoQABy1SBld2dflFMU45ZHrRkYHPVHO
Host: localhost:8080

{
  "oldPassword" : "oldPassword123!",
  "newPassword" : "newPassword123!"
}
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

oldPassword

String

true

6자 이상, 16자 이하

현재 비밀번호

newPassword

String

true

6자 이상, 16자 이하

변경할 비밀번호

Response

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

봉사자 계정 정보 수정

Request

HTTP request
PATCH /api/volunteers/me HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dM9azJlTP8qKrQhIKV2UjurRGy9Cq_2XtAjb6zRrXiy6wUoekeDhG4Ge1MF8kJ3z
Content-Length: 153
X-CSRF-TOKEN: cwAUVJ46TrrjTen_Adp-1AViAib8OcQSGv3Kn3nfDoWlv6NTQ2MiN6gDeo7OL42aOPdK4WBRL0edWqU_eZvyqRznaLPAjsdk
Host: localhost:8080

{
  "name" : "새로운이름",
  "gender" : "MALE",
  "birthDate" : "2023-12-16",
  "phoneNumber" : "010-9999-9999",
  "imageUrl" : "www.aws.s3.com/2"
}
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

name

String

true

1자 이상, 10자 이하

변경할 봉사자 이름

gender

String

true

MALE, FEMALE

변경할 봉사자 성별

birthDate

String

true

yyyy-MM-dd

변경할 봉사자 생년월일

phoneNumber

String

true

-을 포함한 전화번호 형식

변경할 봉사자 전화번호

imageUrl

String

true

변경할 봉사자 이미지 url

Response

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

 — 보호소 — 

봉사자 프로필 조회

Request

HTTP request
GET /api/shelters/volunteers/1/profile HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1NIRUxURVIifQ.alOm9VlmcxT9X4GIjtQmlhyoe6P-LBBaiLZjmrWZO8s32oS0bA9kKOj8mdGpl-UC
X-CSRF-TOKEN: p21UZceAgGnpoqXvRfoNDa9I8rMWgNBMkw_-zATLKRUguwvUkFlnVaG5sQzEwZeLdNc5PZoq34sv4-hhp2vHrmD7ESIZgzu1
Host: localhost:8080
Path parameters
Table 1. /api/shelters/volunteers/{volunteerId}/profile
Parameter Description

volunteerId

봉사자 ID

Response

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: 177

{
  "volunteerEmail" : "asdf@gmail.com",
  "volunteerName" : "김봉사",
  "volunteerTemperature" : 36,
  "volunteerPhoneNumber" : "010-1234-5678",
  "volunteerImageUrl" : ""
}
Response fields
Path Type Description

volunteerEmail

String

이메일

volunteerName

String

이름

volunteerTemperature

Number

온도

volunteerPhoneNumber

String

전화번호

volunteerImageUrl

String

프로필 이미지 URL

보호소

 — 공통 — 

보호소 이메일 중복 확인

Request

HTTP request
POST /api/shelters/email HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 33
X-CSRF-TOKEN: Kqjn4WyJdB5H-W7NgqcixqouSpJKli83LcK1kMypacpHK54nHMzW1V3vRChqz1mou4oW_skeZ6t89R0aH6eFpPTIUf1xHfwU
Host: localhost:8080

{
  "email" : "email@email.com"
}
Request fields
필드명 타입 필수값 제약 설명

email

String

true

보호소 이메일

Response

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: 27

{
  "isDuplicated" : true
}
Response fields
Path Type Description

isDuplicated

Boolean

이메일 중복 여부

보호소 회원가입

Request

HTTP request
POST /api/shelters HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 305
X-CSRF-TOKEN: NTy-dPHuzDquKKB9AgGlNm5zzFm3oT83akWQieAba_M7A2hgDAuHF8OL_gODSZBKYyyRAg0S4WGPklkaC3zxvoF6CcQMMQpT
Host: localhost:8080

{
  "email" : "email@email.com",
  "password" : "password123!",
  "name" : "보호소 이름",
  "address" : "보호소 주소",
  "addressDetail" : "보호소 상세 주소",
  "phoneNumber" : "보호소 전화번호",
  "sparePhoneNumber" : "보호소 임시 전화번호",
  "isOpenedAddress" : false
}
Request fields
필드명 타입 필수값 제약 설명

email

String

true

@ 포함

보호소 이메일

password

String

true

6자 이상, 16자 이하

보호소 패스워드

name

String

true

1자 이상, 20자 이하

보호소 이름

address

String

true

1자 이상, 100자 이하

보호소 주소

addressDetail

String

true

1자 이상, 100자 이하

보호소 상세 주소

phoneNumber

String

true

- 포함, 전화번호 형식 준수

보호소 전화번호

sparePhoneNumber

String

true

- 포함, 전화번호 형식 준수

보호소 임시 전화번호

isOpenedAddress

Boolean

true

보호소 주소 공개 여부

Response

HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/shelters/1
Content-Type: application/json;charset=UTF-8
Content-Length: 21

{
  "shelterId" : 1
}
Response headers
Name Description

Location

생성된 리소스 접근 가능 위치

Response fields
Path Type Description

shelterId

Number

생성된 보호소 ID

보호소 프로필 조회

Request

HTTP request
GET /api/shelters/1/profile HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dM9azJlTP8qKrQhIKV2UjurRGy9Cq_2XtAjb6zRrXiy6wUoekeDhG4Ge1MF8kJ3z
X-CSRF-TOKEN: WrWHo3Wh-2343pltv1egtT5YlHjJ4EJ0dgf1_qDI-4zK2GN5bIS_wE3DylzV7_pa2XqU0FppuRn6giNZT2KWz5X6mLX56ldB
Host: localhost:8080
Path parameters
Table 1. /api/shelters/{shelterId}/profile
Parameter Description

shelterId

보호소 ID

Response

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: 304

{
  "shelterId" : 1,
  "shelterEmail" : "shelterEmail@email.com",
  "shelterName" : "shelterName",
  "shelterAddress" : "shelterAddress",
  "shelterAddressDetail" : "shelterAddressDetail",
  "shelterPhoneNumber" : "010-1234-5678",
  "shelterSparePhoneNumber" : "010-8765-4321",
  "shelterImageUrl" : ""
}
Response fields
Path Type Description

shelterId

Number

보호소 ID

shelterEmail

String

보호소 이메일

shelterName

String

보호소 이름

shelterAddress

String

보호소 주소

shelterAddressDetail

String

보호소 상세주소

shelterPhoneNumber

String

보호소 전화번호

shelterSparePhoneNumber

String

보호소 임시 전화번호

shelterImageUrl

String

보호소 이미지 Url

보호소 간단 정보 조회

Request

HTTP request
GET /api/shelters/1/profile/simple HTTP/1.1
Content-Type: application/json;charset=UTF-8
X-CSRF-TOKEN: hfs3BUt7nhTlEjHEAmgduvzi6369ceM5aTToLbdFPgDZeFD6sc4FNX1M_SLIdwXyM0Upg5rbxhyNQdMUCgXbT48gXGLvQWPK
Host: localhost:8080
Path parameters
Table 1. /api/shelters/{shelterId}/profile/simple
Parameter Description

shelterId

보호소 ID

Response

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: 145

{
  "shelterName" : "shelterName",
  "shelterEmail" : "shelterEmail@email.com",
  "shelterAddress" : "shelterAddress",
  "shelterImageUrl" : ""
}
Response fields
Path Type Description

shelterName

String

보호소 이름

shelterEmail

String

보호소 이메일

shelterAddress

String

보호소 주소

shelterImageUrl

String

보호소 이미지 url

 — 보호소 — 

보호소 마이 페이지 조회

Request

HTTP request
GET /api/shelters/me HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1NIRUxURVIifQ.alOm9VlmcxT9X4GIjtQmlhyoe6P-LBBaiLZjmrWZO8s32oS0bA9kKOj8mdGpl-UC
X-CSRF-TOKEN: FnZSKKGRCeWWKA9ZeqhUoEk6jtDF47OHcZgqxBUeHkxGNVFjJBA3HJSmP9y7HT5tG4VgwXwIo-j01NWqR60f8yEufH91AzBS
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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: 339

{
  "shelterId" : 1,
  "shelterName" : "shelterName",
  "shelterEmail" : "shelterEmail@email.com",
  "shelterAddress" : "shelterAddress",
  "shelterAddressDetail" : "shelterAddressDetail",
  "shelterIsOpenedAddress" : true,
  "shelterPhoneNumber" : "010-1234-5678",
  "shelterSparePhoneNumber" : "010-8765-4321",
  "shelterImageUrl" : ""
}
Response fields
Path Type Description

shelterId

Number

보호소 ID

shelterName

String

보호소 이름

shelterEmail

String

보호소 이메일

shelterAddress

String

보호소 주소

shelterAddressDetail

String

보호소 상세주소

shelterIsOpenedAddress

Boolean

보호소 상세 주소 공개 여부

shelterPhoneNumber

String

보호소 전화번호

shelterSparePhoneNumber

String

보호소 임시 전화번호

shelterImageUrl

String

보호소 이미지 Url

보호소 비밀 번호 변경

Request

HTTP request
PATCH /api/shelters/me/passwords HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1NIRUxURVIifQ.alOm9VlmcxT9X4GIjtQmlhyoe6P-LBBaiLZjmrWZO8s32oS0bA9kKOj8mdGpl-UC
Content-Length: 76
X-CSRF-TOKEN: 4ldi8y9yZM5FDfTW0h9Yyet8CzpepNHsUz12GUuXRqEdYZKM1GYGyh9KUP1oP5Ww4TJs_NlIJlg8nLfBZAlPe3-vcJZ5APTu
Host: localhost:8080

{
  "oldPassword" : "oldPassword123!",
  "newPassword" : "newPassword123!"
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

oldPassword

String

true

6자 이상, 16자 이하

현재 비밀번호

newPassword

String

true

6자 이상, 16자 이하

변경할 비밀번호

Response

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

보호소 상세 주소 공개 여부 변경

Request

HTTP request
PATCH /api/shelters/me/address/status HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1NIRUxURVIifQ.alOm9VlmcxT9X4GIjtQmlhyoe6P-LBBaiLZjmrWZO8s32oS0bA9kKOj8mdGpl-UC
Content-Length: 31
X-CSRF-TOKEN: s0h33NiHAVtgekkEvTa9o0XbYWUo_VyyyFHAEsPGrgHxHXlAg3lH7uq1NG9NTn813huJm3LvTFxMmT-fqWikI_f-mjaQLU54
Host: localhost:8080

{
  "isOpenedAddress" : false
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

isOpenedAddress

Boolean

true

보호소 상세 주소 공개 여부

Response

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

보호소 정보 수정

Request

HTTP request
PATCH /api/shelters/me HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjMsInJvbGUiOiJST0xFX1NIRUxURVIifQ.alOm9VlmcxT9X4GIjtQmlhyoe6P-LBBaiLZjmrWZO8s32oS0bA9kKOj8mdGpl-UC
Content-Length: 226
X-CSRF-TOKEN: 2pe9eNY4EqW6fHDSFlIQ9D1O6Wot5fHdORZse42UzUbzqTDU4vTZHOALdsSXShTrLn8kxFl8xAhJ18nwD3UIQ76k-ySRmVW2
Host: localhost:8080

{
  "name" : "shelterName",
  "imageUrl" : "",
  "address" : "shelterAddress",
  "addressDetail" : "shelterAddressDetail",
  "phoneNumber" : "010-1234-5678",
  "sparePhoneNumber" : "010-8765-4321",
  "isOpenedAddress" : true
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

name

String

true

1자 이상, 20자 이하

보호소 이름

imageUrl

String

보호소 이름

address

String

true

1자 이상, 100자 이하

보호소 주소

addressDetail

String

true

1자 이상, 100자 이하

보호소 상세 주소

phoneNumber

String

true

- 포함, 전화번호 형식 준수

보호소 전화번호

sparePhoneNumber

String

true

- 포함, 전화번호 형식 준수

보호소 임시 전화번호

isOpenedAddress

Boolean

true

보호소 주소 공개 여부

Response

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

봉사 모집

 — 공통 — 

봉사 모집글 목록 조회 & 검색

Request

HTTP request
GET /api/recruitments?keyword=%EA%B2%85%EC%83%89%EC%96%B4&startDate=2023-12-16&endDate=2023-12-16&closedFilter=IS_OPENED&keywordFilter=IS_CONTENT&pageNumber=0&pageSize=10 HTTP/1.1
X-CSRF-TOKEN: h1xeYJByb6sVgqytQcyefLO7c7gnZgkv-c9VhZdB2K_5PRFfvm1vAqZKW844sc-VduGqSNGDXoAXVToCzfoz5qEj6J_KWHRr
Host: localhost:8080
Query parameters
필드명 필수값 제약 설명

keyword

검색어

startDate

yyyy-MM-dd

검색 시작일

endDate

yyyy-MM-dd

검색 종료일

closedFilter

IS_OPENED, IS_CLOSED

마감 여부

keywordFilter

IS_TITLE, IS_CONTENT, IS_SHELTER_NAME, ALL

검색 필터

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 570

{
  "recruitments" : [ {
    "recruitmentId" : 1,
    "recruitmentTitle" : "recruitmentTitle",
    "recruitmentStartTime" : "2024-01-16T22:06:52.097171",
    "recruitmentEndTime" : "2024-01-17T00:06:52.097171",
    "recruitmentDeadline" : "2024-01-15T22:06:52.097171",
    "recruitmentIsClosed" : false,
    "recruitmentApplicantCount" : 0,
    "recruitmentCapacity" : 10,
    "shelterName" : "shelterName",
    "shelterImageUrl" : "",
    "recruitmentCreatedAt" : "2023-12-16T22:06:59.326311"
  } ],
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  }
}
Response fields
Path Type Description

recruitments

Array

봉사 모집글 리스트

recruitments[].recruitmentId

Number

봉사 모집글 ID

recruitments[].recruitmentTitle

String

봉사 모집글 제목

recruitments[].recruitmentStartTime

String

봉사 시작 시간

recruitments[].recruitmentEndTime

String

봉사 종료 시간

recruitments[].recruitmentDeadline

String

봉사 모집 마감 시간

recruitments[].recruitmentIsClosed

Boolean

봉사 모집 마감 여부

recruitments[].recruitmentApplicantCount

Number

봉사 신청 인원

recruitments[].recruitmentCapacity

Number

봉사 정원

recruitments[].shelterName

String

보호소 이름

recruitments[].shelterImageUrl

String

보호소 이미지 url

recruitments[].recruitmentCreatedAt

String

봉사 모집글 생성 시간

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

봉사 모집글 목록 조회 & 검색 V2

Request

HTTP request
GET /api/v2/recruitments?keyword=%EA%B2%85%EC%83%89%EC%96%B4&startDate=2023-12-16&endDate=2023-12-16&closedFilter=IS_OPENED&keywordFilter=IS_CONTENT&recruitmentId=1&createdAt=2023-12-16T22%3A06%3A59.379521&pageNumber=0&pageSize=10 HTTP/1.1
X-CSRF-TOKEN: MtReGx_-Gcas1JBbQLWP2SwmO9T_hdsEz05oLXHjLVv3LRW9VuJsKXrPLfWB4ac4c5i74R0QFu2esO8pqSxdG0jSFWiVGSOL
Host: localhost:8080
Query parameters
필드명 필수값 제약 설명

keyword

검색어

startDate

yyyy-MM-dd

검색 시작일

endDate

yyyy-MM-dd

검색 종료일

closedFilter

IS_OPENED, IS_CLOSED

마감 여부

keywordFilter

IS_TITLE, IS_CONTENT, IS_SHELTER_NAME, ALL

검색 필터

recruitmentId

true

보호소 ID

createdAt

true

보호소 생성 날짜

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 570

{
  "recruitments" : [ {
    "recruitmentId" : 1,
    "recruitmentTitle" : "recruitmentTitle",
    "recruitmentStartTime" : "2024-01-16T22:06:52.097171",
    "recruitmentEndTime" : "2024-01-17T00:06:52.097171",
    "recruitmentDeadline" : "2024-01-15T22:06:52.097171",
    "recruitmentIsClosed" : false,
    "recruitmentApplicantCount" : 0,
    "recruitmentCapacity" : 10,
    "shelterName" : "shelterName",
    "shelterImageUrl" : "",
    "recruitmentCreatedAt" : "2023-12-16T22:06:59.379598"
  } ],
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  }
}
Response fields
Path Type Description

recruitments

Array

봉사 모집글 리스트

recruitments[].recruitmentId

Number

봉사 모집글 ID

recruitments[].recruitmentTitle

String

봉사 모집글 제목

recruitments[].recruitmentStartTime

String

봉사 시작 시간

recruitments[].recruitmentEndTime

String

봉사 종료 시간

recruitments[].recruitmentDeadline

String

봉사 모집 마감 시간

recruitments[].recruitmentIsClosed

Boolean

봉사 모집 마감 여부

recruitments[].recruitmentApplicantCount

Number

봉사 신청 인원

recruitments[].recruitmentCapacity

Number

봉사 정원

recruitments[].shelterName

String

보호소 이름

recruitments[].shelterImageUrl

String

보호소 이미지 url

recruitments[].recruitmentCreatedAt

String

봉사 모집글 생성 시간

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

봉사 모집글 상세 조회

Request

HTTP request
GET /api/recruitments/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
X-CSRF-TOKEN: Iw7ocnD7-abVDqwC1_SNjfSXndaWd1h_U5PbpbeRc4oX-2LRQTiKR0fLyZ74Op4359m5vcbzsO_1E25SMqC-l46iSu5zmVrl
Host: localhost:8080
Path parameters
Table 1. /api/recruitments/{recruitmentId}
Parameter Description

recruitmentId

봉사 모집글 ID

Response

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: 500

{
  "recruitmentTitle" : "recruitmentTitle",
  "recruitmentApplicantCount" : 0,
  "recruitmentCapacity" : 10,
  "recruitmentContent" : "recruitmentContent",
  "recruitmentStartTime" : "2024-01-16T22:06:52.097171",
  "recruitmentEndTime" : "2024-01-17T00:06:52.097171",
  "recruitmentIsClosed" : false,
  "recruitmentDeadline" : "2024-01-15T22:06:52.097171",
  "recruitmentCreatedAt" : null,
  "recruitmentUpdatedAt" : null,
  "recruitmentImageUrls" : [ "imageUrl1", "imageUrl2" ],
  "shelterId" : 1
}
Response fields
Path Type Description

recruitmentTitle

String

모집글 제목

recruitmentApplicantCount

Number

모집글 지원자 수

recruitmentCapacity

Number

모집글 정원

recruitmentContent

String

모집글 내용

recruitmentStartTime

String

봉사 시작 시간

recruitmentEndTime

String

봉사 종료 시간

recruitmentIsClosed

Boolean

마감 여부

recruitmentDeadline

String

마감 시간

recruitmentCreatedAt

String

모집글 생성 시간

recruitmentUpdatedAt

String

모집글 업데이트 시간

recruitmentImageUrls

Array

모집글 이미지 url 리스트

shelterId

Number

보호소 ID

보호소가 작성한 봉사 모집글 목록 조회

Request

HTTP request
GET /api/shelters/1/recruitments HTTP/1.1
Content-Type: application/json;charset=UTF-8
X-CSRF-TOKEN: dZhKdy9nohY_v9riEC1ie5SCA6_U64yFvtO0AoH10YT7x4zPRKwrExwCkXUS2-6AdABWTaWzLs2w2buojeOCMLTG5-LCo7up
Host: localhost:8080
Path parameters
Table 1. /api/shelters/{shelterId}/recruitments
Parameter Description

shelterId

보호소 ID

Query parameters
필드명 필수값 제약 설명

pageSize

페이지 크기

pageNumber

페이지 번호

Response

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: 356

{
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  },
  "recruitments" : [ {
    "recruitmentId" : 1,
    "recruitmentTitle" : "recruitmentTitle",
    "recruitmentStartTime" : "2024-01-16T22:06:52.097171",
    "recruitmentDeadline" : "2024-01-15T22:06:52.097171",
    "recruitmentCapacity" : 10,
    "recruitmentApplicantCount" : 0
  } ]
}
Response fields
Path Type Description

pageInfo.totalElements

Number

총 게시글 수

pageInfo.hasNext

Boolean

다음 페이지 여부

recruitments[]

Array

모집 게시글 리스트

recruitments[].recruitmentId

Number

모집 ID

recruitments[].recruitmentTitle

String

모집 제목

recruitments[].recruitmentStartTime

String

봉사 시작 시간

recruitments[].recruitmentDeadline

String

모집 마감 시간

recruitments[].recruitmentCapacity

Number

모집 정원

recruitments[].recruitmentApplicantCount

Number

현재 지원자 수

 — 보호소 — 

내(보호소)가 작성한 봉사 모집글 목록 조회 & 검색

Request

HTTP request
GET /api/shelters/recruitments?keyword=%EA%B2%85%EC%83%89%EC%96%B4&startDate=2023-12-16&endDate=2023-12-16&closedFilter=IS_OPENED&keywordFilter=IS_SHELTER_NAME&pageNumber=0&pageSize=10 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTksInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTksInJvbGUiOiJST0xFX1NIRUxURVIifQ.x0FfgnjMmL-dQFHIv4wCjmXhw-m9eWWWvD0db_9YicbageImq2_C32SGZRLqeNFF
X-CSRF-TOKEN: 2iFWCmsOLBuTft-zk9UnL1vZt8o7NMj9f5Dl-j6NEQyByzPw6RJkPwpsTyK-Se6HpvgTH2vhmqhdA_7QHPaHzFy5Imrnr1XA
Host: localhost:8080
Request headers
Name Description

Authorization

액세스 토큰

Query parameters
필드명 필수값 제약 설명

keyword

검색어

startDate

yyyy-MM-dd

검색 시작 날짜

endDate

yyyy-MM-dd

검색 종료 날짜

closedFilter

기본값 null

마감 여부

keywordFilter

IS_TITLE, IS_CONTENT

검색 필터

pageSize

페이지 크기

pageNumber

페이지 번호

Response

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: 448

{
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  },
  "recruitments" : [ {
    "recruitmentId" : 1,
    "recruitmentTitle" : "recruitmentTitle",
    "recruitmentStartTime" : "2024-01-16T22:06:52.097171",
    "recruitmentEndTime" : "2024-01-17T00:06:52.097171",
    "recruitmentDeadline" : "2024-01-15T22:06:52.097171",
    "recruitmentIsClosed" : false,
    "recruitmentApplicantCount" : 0,
    "recruitmentCapacity" : 10
  } ]
}
Response fields
Path Type Description

pageInfo.totalElements

Number

총 게시글 수

pageInfo.hasNext

Boolean

다음 페이지 여부

recruitments[]

Array

모집 게시글 리스트

recruitments[].recruitmentId

Number

모집 ID

recruitments[].recruitmentTitle

String

모집 제목

recruitments[].recruitmentStartTime

String

봉사 시작 시간

recruitments[].recruitmentEndTime

String

봉사 끝난 시간

recruitments[].recruitmentDeadline

String

모집 마감 시간

recruitments[].recruitmentIsClosed

Boolean

모집 마감 여부

recruitments[].recruitmentApplicantCount

Number

현재 지원자 수

recruitments[].recruitmentCapacity

Number

모집 정원

봉사 모집글 등록

Request

HTTP request
POST /api/shelters/recruitments HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTksInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTksInJvbGUiOiJST0xFX1NIRUxURVIifQ.x0FfgnjMmL-dQFHIv4wCjmXhw-m9eWWWvD0db_9YicbageImq2_C32SGZRLqeNFF
Content-Length: 223
X-CSRF-TOKEN: pCasoKY_leo-LdpLARfCQGriqRpOPQEY0uEgvu6FCt6G7BmNkRTKlJdZpN8TSLsqODr2eAvahHgqWzQ14YIVj9-waeq01Hu9
Host: localhost:8080

{
  "title" : "title",
  "startTime" : "2023-12-17T22:06:59.437298",
  "endTime" : "2023-12-17T23:06:59.437298",
  "deadline" : "2023-12-17T03:06:59.437298",
  "capacity" : 10,
  "content" : "content",
  "imageUrls" : [ ]
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

title

String

true

1자 이상, 50자 이하

봉사 모집글 제목

startTime

String

true

yyyy-MM-dd’T’HH:mm:ss

봉사 시작 시간

endTime

String

true

yyyy-MM-dd’T’HH:mm:ss

봉사 종료 시간

deadline

String

true

yyyy-MM-dd’T’HH:mm:ss

봉사 모집 마감 시간

capacity

Number

true

1명 이상, 99명 이하

봉사 모집 정원

content

String

true

1자 이상, 1000자 이하

봉사 모집글 본문

imageUrls

Array

0장 이상, 5장 이하

봉사 모집글 이미지

Response

HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/recruitments/1
Content-Type: application/json;charset=UTF-8
Content-Length: 25

{
  "recruitmentId" : 1
}
Response headers
Name Description

Location

생성된 리소스에 대한 접근 api

봉사 모집글 마감

Request

HTTP request
PATCH /api/shelters/recruitments/1/close HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTksInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTksInJvbGUiOiJST0xFX1NIRUxURVIifQ.x0FfgnjMmL-dQFHIv4wCjmXhw-m9eWWWvD0db_9YicbageImq2_C32SGZRLqeNFF
X-CSRF-TOKEN: GHEOpZOn7rfRLMJfo2ZORZJ6xlYABh4jItPFoHRrX6s1sEwVL0A7nffC2dX8T6Y-kEt6caRC6zQ4ZyYOF7KkmUUKaZ0DiC0s
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Path parameters
Table 1. /api/shelters/recruitments/{recruitmentId}/close
Parameter Description

recruitmentId

봉사 모집글 ID

Response

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

봉사 모집글 수정

Request

HTTP request
PATCH /api/shelters/recruitments/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTksInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTksInJvbGUiOiJST0xFX1NIRUxURVIifQ.x0FfgnjMmL-dQFHIv4wCjmXhw-m9eWWWvD0db_9YicbageImq2_C32SGZRLqeNFF
Content-Length: 231
X-CSRF-TOKEN: 5IuMSji-PDsaqstak06T_m2ij69Dz6l6N9wn9loGn-GhRB9n0rm6clyNXQ03kvg59WOnzguRopcgq5BXU7lBzmxjqNSXd35X
Host: localhost:8080

{
  "title" : "title",
  "startTime" : "2024-01-16T22:06:59.40488",
  "endTime" : "2024-01-16T23:06:59.40488",
  "deadline" : "2024-01-15T22:06:59.40488",
  "capacity" : 10,
  "content" : "content",
  "imageUrls" : [ "a1", "a2" ]
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Path parameters
Table 1. /api/shelters/recruitments/{recruitmentId}
Parameter Description

recruitmentId

봉사 모집글 ID

Request fields
필드명 타입 필수값 제약 설명

title

String

1자 이상, 100자 이하

봉사 모집글 제목

startTime

String

yyyy-MM-dd’T’HH:mm:ss

봉사 시작 시간

endTime

String

yyyy-MM-dd’T’HH:mm:ss

봉사 종료 시간

deadline

String

yyyy-MM-dd’T’HH:mm:ss

봉사 마감 시간

capacity

Number

1명 이상, 99명 이하

봉사 정원

content

String

1자 이상, 1000자 이하

봉사 모집글 내용

imageUrls

Array

5장 이하

봉사 모집글 이미지 리스트

Response

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

봉사 모집글 삭제

Request

HTTP request
DELETE /api/shelters/recruitments/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTksInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTksInJvbGUiOiJST0xFX1NIRUxURVIifQ.x0FfgnjMmL-dQFHIv4wCjmXhw-m9eWWWvD0db_9YicbageImq2_C32SGZRLqeNFF
X-CSRF-TOKEN: 7SYaWmYuQQi3vusY_crdtavJFB_RrSeS5iaUw96AqzpPll0fjhV_P1NMcDCah91-nufphZ_5OX7hyEa_1kCg8b-wkgl-pDwq
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Path parameters
Table 1. /api/shelters/recruitments/{recruitmentId}
Parameter Description

recruitmentId

봉사 모집글 ID

Response

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

봉사자가 완료한 봉사 모집글 조회

Request

HTTP request
GET /api/shelters/volunteers/1/recruitments/completed?pageNumber=0&pageSize=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTksInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTksInJvbGUiOiJST0xFX1NIRUxURVIifQ.x0FfgnjMmL-dQFHIv4wCjmXhw-m9eWWWvD0db_9YicbageImq2_C32SGZRLqeNFF
X-CSRF-TOKEN: 3bFHWN3TWGM9rFcF-_cbvG2wWCQZXdcq_9YqN7XCGDsmSPOZv4MmO763alAQyTJjytov2AnRdR0vO-YHxrVPDtP1K1kRKZH8
Host: localhost:8080
Path parameters
Table 1. /api/shelters/volunteers/{volunteerId}/recruitments/completed
Parameter Description

volunteerId

봉사자 ID

Query parameters
필드명 필수값 제약 설명

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 264

{
  "recruitments" : [ {
    "recruitmentId" : 1,
    "recruitmentTitle" : "recruitmentTitle",
    "recruitmentStartTime" : "2024-01-16T22:06:52.097171",
    "shelterName" : "shelterName"
  } ],
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  }
}
Response fields
Path Type Description

recruitments

Array

봉사 모집글 리스트

recruitments[].recruitmentId

Number

봉사 모집글 ID

recruitments[].recruitmentTitle

String

봉사 모집글 제목

recruitments[].recruitmentStartTime

String

봉사 날짜

recruitments[].shelterName

String

보호소 이름

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

봉사 신청

 — 봉사자 — 

봉사 신청

Request

HTTP request
POST /api/volunteers/recruitments/1/apply HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.teZ1kadzvOUa_Fy-PYGLzoNjl7eqOZhLt-5MMaGXHOARFS6ttCuv7QQp02hBWf-_
X-CSRF-TOKEN: 2E0q5swv6ZJ_-hzx95Jx_TqhapW7lToJV5tZyYM8EfsRlsGE6ytJgv0c36BSzX_Gzr9FzliQR62K8Qskbq44rbANIZ8lrvTg
Host: localhost:8080
Request headers
Name Description

Authorization

액세스 토큰

Path parameters
Table 1. /api/volunteers/recruitments/{recruitmentId}/apply
Parameter Description

recruitmentId

봉사 모집글 ID

Response

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

봉사 신청 여부 조회

Request

HTTP request
GET /api/volunteers/recruitments/1/apply HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.teZ1kadzvOUa_Fy-PYGLzoNjl7eqOZhLt-5MMaGXHOARFS6ttCuv7QQp02hBWf-_
X-CSRF-TOKEN: HrcDeaxfEsgsNBC8XJWDZA91TcbaElPGlp54748XxnKn3tPPetRgSs1rJ_8BAymNa7i3AD8RYKTqJ2frpvoaiux2oBTD6er_
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Path parameters
Table 1. /api/volunteers/recruitments/{recruitmentId}/apply
Parameter Description

recruitmentId

봉사 모집글 ID

Response

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: 35

{
  "isAppliedRecruitment" : true
}
Response fields
Path Type Description

isAppliedRecruitment

Boolean

봉사 신청 여부

내(봉사자)가 신청한 봉사 신청 목록 조회

Request

HTTP request
GET /api/volunteers/applicants?pageNumber=0&pageSize=10 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.teZ1kadzvOUa_Fy-PYGLzoNjl7eqOZhLt-5MMaGXHOARFS6ttCuv7QQp02hBWf-_
X-CSRF-TOKEN: bUbZ784Cw2EiV_JvHmzxSxpAWA2LSJSWDHQ9w6ZvMEBiabfPDCTq3a878lcPYJMMe0HFfCJzdTS4Lay7NRVcoJRXAnRaD4H8
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Response

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: 387

{
  "pageInfo" : {
    "totalElements" : 20,
    "hasNext" : true
  },
  "applicants" : [ {
    "shelterId" : 1,
    "recruitmentId" : 1,
    "applicantId" : 1,
    "recruitmentTitle" : "모집글 제목",
    "shelterName" : "보호소 이름",
    "applicantStatus" : "ATTENDANCE",
    "applicantIsWritedReview" : true,
    "recruitmentStartTime" : "2023-12-16T22:06:52.449827"
  } ]
}
Response fields
Path Type Description

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

applicants

Array

신청한 봉사 리스트

applicants[].shelterId

Number

보호소 ID

applicants[].recruitmentId

Number

봉사 모집글 ID

applicants[].applicantId

Number

봉사 신청자 ID

applicants[].recruitmentTitle

String

모집글 제목

applicants[].shelterName

String

보호소 이름

applicants[].applicantStatus

String

승인 상태

applicants[].applicantIsWritedReview

Boolean

후기 작성 가능 여부

applicants[].recruitmentStartTime

String

봉사 날짜

 — 보호소 — 

봉사 신청자 목록 조회

Request

HTTP request
GET /api/shelters/recruitments/1/applicants HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTIsInJvbGUiOiJST0xFX1NIRUxURVIifQ.PUe95oj6ryAkER3VQYZYhpuqsGkdgv4yWOJ3h2oVsL97szQVYNmxgBL2aeLhE1xJ
X-CSRF-TOKEN: hSnKs-Yg-1snQPEHGtkeCBJ6_DutSebEoVvQROI3EWn1u_rq4RH6hoAWwjgKI5MwfvQqbCZL0QKecdXplzi1cttUd1DC3cPe
Host: localhost:8080
Request headers
Name Description

Authorization

액세스 토큰

Path parameters
Table 1. /api/shelters/recruitments/{recruitmentId}/applicants
Parameter Description

recruitmentId

모집글 ID

Response

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: 324

{
  "applicants" : [ {
    "volunteerId" : 1,
    "applicantId" : 1,
    "volunteerName" : "봉사자 이름",
    "volunteerBirthDate" : "2023-12-16",
    "volunteerGender" : "MALE",
    "completedVolunteerCount" : 5,
    "volunteerTemperature" : 36,
    "applicantStatus" : "APPROVED"
  } ],
  "recruitmentCapacity" : 10
}
Response fields
Path Type Description

recruitmentCapacity

Number

모집 정원

applicants[]

Array

봉사 신청자 리스트

applicants[].volunteerId

Number

봉사자 ID

applicants[].applicantId

Number

봉사 신청 ID

applicants[].volunteerName

String

봉사자 이름

applicants[].volunteerBirthDate

String

봉사자 생일

applicants[].volunteerGender

String

봉사자 성별

applicants[].completedVolunteerCount

Number

봉사 횟수

applicants[].volunteerTemperature

Number

봉사자 온도

applicants[].applicantStatus

String

신청 상태

봉사 신청 승인자 목록 조회

Request

HTTP request
GET /api/shelters/recruitments/1/approval HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTIsInJvbGUiOiJST0xFX1NIRUxURVIifQ.PUe95oj6ryAkER3VQYZYhpuqsGkdgv4yWOJ3h2oVsL97szQVYNmxgBL2aeLhE1xJ
X-CSRF-TOKEN: 5W456HmS8faCbb4Yrm5VTyR6eNeQyG8g28tBkSLPXPWbjN3r0VlcihrxyJSvX9goyENhfB0cVbbzrFwNvf1wpUP2OsP4vbjS
Host: localhost:8080
Request headers
Name Description

Authorization

액세스 토큰

Path parameters
Table 1. /api/shelters/recruitments/{recruitmentId}/approval
Parameter Description

recruitmentId

모집글 ID

Response

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: 24

{
  "applicants" : [ ]
}
Response fields
Path Type Description

applicants[]

Array

봉사 신청자 리스트

applicants[].applicantId

Number

봉사 신청 ID

applicants[].volunteerId

Number

봉사자 ID

applicants[].volunteerBirthdate

String

봉사자 생일

applicants[].volunteerGender

String

봉사자 성별

applicants[].volunteerPhoneNumber

String

봉사자 전화번호

applicants[].volunteerAttendance

Boolean

출석 현황

봉사 신청자 승인 여부 수정

Request

HTTP request
PATCH /api/shelters/recruitments/1/applicants/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTIsInJvbGUiOiJST0xFX1NIRUxURVIifQ.PUe95oj6ryAkER3VQYZYhpuqsGkdgv4yWOJ3h2oVsL97szQVYNmxgBL2aeLhE1xJ
Content-Length: 25
X-CSRF-TOKEN: wOGsHXmvMO6M2Gn9YpJfbMeK-abEZpYgbz_4GF-G6bugZHx69dadeE-fVteh6FvIUL9rXKW81J71AqINVg7Oejnk0I6TVkpC
Host: localhost:8080

{
  "isApproved" : true
}
Request headers
Name Description

Authorization

액세스 토큰

Path parameters
Table 1. /api/shelters/recruitments/{recruitmentId}/applicants/{applicantId}
Parameter Description

recruitmentId

모집글 ID

applicantId

봉사 신청 ID

Request fields
필드명 타입 필수값 제약 설명

isApproved

Boolean

true

승인 상태

Response

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

봉사 신청 승인자 출석 상태 수정

Request

HTTP request
PATCH /api/shelters/recruitments/1/approval HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTIsInJvbGUiOiJST0xFX1NIRUxURVIifQ.PUe95oj6ryAkER3VQYZYhpuqsGkdgv4yWOJ3h2oVsL97szQVYNmxgBL2aeLhE1xJ
Content-Length: 77
X-CSRF-TOKEN: uQo_BWB4vtH_n9pKY-zPKa-JxbXr2LI8ketGGYUKVAFLbB63iDoHPAMb2uPSre1-UsH7TJ6w6NfZuYYRpthwf-BpZ2J-CCmC
Host: localhost:8080

{
  "applicants" : [ {
    "applicantId" : 1,
    "isAttended" : true
  } ]
}
Request headers
Name Description

Authorization

액세스 토큰

Path parameters
Table 1. /api/shelters/recruitments/{recruitmentId}/approval
Parameter Description

recruitmentId

모집글 ID

Request fields
필드명 타입 필수값 제약 설명

applicants[]

Array

true

봉사 승인자 출석 리스트

applicants[].applicantId

Number

true

봉사 신청 ID

applicants[].isAttended

Boolean

true

출석 상태

Response

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

봉사 후기

 — 공통 — 

보호소의 봉사 리뷰 목록 조회

Request

HTTP request
GET /api/shelters/1/reviews?pageNumber=0&pageSize=10 HTTP/1.1
X-CSRF-TOKEN: lfaMM3jxgDjskMLPfhaqyDaL_mCDPsCIs9SEb2eY6IlCpAZDrJXuVkrBsQzBoPT8Gzue_QS501iwD_Klg-3nDAGtju0hwWVy
Host: localhost:8080
Path parameters
Table 1. /api/shelters/{shelterId}/reviews
Parameter Description

shelterId

보호소 ID

Query parameters
필드명 필수값 제약 설명

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 330

{
  "reviews" : [ {
    "reviewId" : 1,
    "volunteerTemperature" : 36,
    "reviewCreatedAt" : "2023-12-16T22:07:02.727672",
    "reviewContent" : "reviewContent",
    "volunteerEmail" : "asdf****",
    "reviewImageUrls" : [ "imageUrl1", "imageUrl2" ]
  } ],
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  }
}
Response fields
Path Type Description

reviews

Array

리뷰 리스트

reviews[].reviewId

Number

리뷰 ID

reviews[].reviewCreatedAt

String

리뷰 생성일

reviews[].reviewContent

String

리뷰 내용

reviews[].reviewImageUrls

Array

리뷰 이미지 url 리스트

reviews[].volunteerEmail

String

봉사자 이메일

reviews[].volunteerTemperature

Number

봉사자 온도

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

 — 봉사자 — 

봉사 후기 등록

Request

HTTP request
POST /api/volunteers/reviews HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dQiLY94KZn3KCgiLJySZOh4IgBexRZtzjW0FjxN1hxY-orpKBKCbyS7hk2-Z1BDK
Content-Length: 100
X-CSRF-TOKEN: chsXNjDPJMbDPT7FLtEufqspoyV5xFi0CMdaLFY0S50aWV0oEClxU1T_EaXuXlz1SPwaT5kfjh1P9zuZMPE-FG4BcqwrYGxK
Host: localhost:8080

{
  "applicantId" : 1,
  "content" : "reviewContent",
  "imageUrls" : [ "imageUrl1", "imageUrl2" ]
}
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

applicantId

Number

true

봉사 신청 ID

content

String

true

org.springframework.restdocs.snippet.Attributes$Attribute@24558048

imageUrls[]

Array

org.springframework.restdocs.snippet.Attributes$Attribute@51d5d835

Response

HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/volunteers/reviews/1
Content-Type: application/json;charset=UTF-8
Content-Length: 20

{
  "reviewId" : 1
}

봉사 후기 상세 조회

Request

HTTP request
GET /api/volunteers/reviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dQiLY94KZn3KCgiLJySZOh4IgBexRZtzjW0FjxN1hxY-orpKBKCbyS7hk2-Z1BDK
X-CSRF-TOKEN: 4Z0u8S14utRbXgAMubGhVUAPCEu8f1gASuBa2TnNhRTBMkTv1fwfkEtB3-N2ajU02JyVNyE3JSqEGW4tf9hj7Fr05yGjB3HZ
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Path parameters
Table 1. /api/volunteers/reviews/{reviewId}
Parameter Description

reviewId

리뷰 ID

Response

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: 109

{
  "reviewId" : 1,
  "reviewContent" : "reviewContent",
  "reviewImageUrls" : [ "imageUrl1", "imageUrl2" ]
}
Response fields
Path Type Description

reviewId

Number

리뷰 ID

reviewContent

String

리뷰 내용

reviewImageUrls[]

Array

리뷰 이미지 url 리스트

봉사 후기 수정

Request

HTTP request
PATCH /api/volunteers/reviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dQiLY94KZn3KCgiLJySZOh4IgBexRZtzjW0FjxN1hxY-orpKBKCbyS7hk2-Z1BDK
Content-Length: 66
X-CSRF-TOKEN: divJYDsQUKxHYZll0BeMA3wXzC9nBIBkKpJJLQwtDXowKfoeRB2oUl5zMpRqB64E4jq4Mhgv4U1WZ7JJE6UvSTpLPkJRTZ59
Host: localhost:8080

{
  "content" : "글 내용",
  "imageUrls" : [ "url1", "url2" ]
}
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Path parameters
Table 1. /api/volunteers/reviews/{reviewId}
Parameter Description

reviewId

리뷰 ID

Request fields
필드명 타입 필수값 제약 설명

content

String

true

org.springframework.restdocs.snippet.Attributes$Attribute@6f312e96

imageUrls[]

Array

org.springframework.restdocs.snippet.Attributes$Attribute@64378a6

Response

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

봉사 후기 삭제

Request

HTTP request
DELETE /api/volunteers/reviews/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dQiLY94KZn3KCgiLJySZOh4IgBexRZtzjW0FjxN1hxY-orpKBKCbyS7hk2-Z1BDK
X-CSRF-TOKEN: SpZHr8rr14z4mO-ikqwQSXXKl1_SgYSb6wsc7EtKuoU8lz0VcvVxzfOPsb7V_Nebq4EkfkD-umbnsby2iWh_3H57g-EPpl8t
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Path parameters
Table 1. /api/volunteers/reviews/{reviewId}
Parameter Description

reviewId

봉사 후기 ID

Response

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

내(봉사자)가 작성한 후기 리스트 조회

Request

HTTP request
GET /api/volunteers/me/reviews?pageNumber=0&pageSize=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjIsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.dQiLY94KZn3KCgiLJySZOh4IgBexRZtzjW0FjxN1hxY-orpKBKCbyS7hk2-Z1BDK
X-CSRF-TOKEN: ONgHF6LHmNzbKDjRPkYrDzc-nh56GFc068rDlql1RPj--YbzAb0_J5Gk_ur2Hg_gDmsfOA8PsyYfKWEZ2fOho8wQJcucneDK
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Query parameters
필드명 필수값 제약 설명

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 317

{
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  },
  "reviews" : [ {
    "reviewId" : 1,
    "shelterId" : 1,
    "shelterName" : "shelterName",
    "reviewCreatedAt" : "2023-12-16T22:07:02.70462",
    "reviewContent" : "reviewContent",
    "reviewImageUrls" : [ "imageUrl1", "imageUrl2" ]
  } ]
}
Response fields
Path Type Description

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

reviews

Array

리뷰 리스트

reviews[].reviewId

Number

리뷰 ID

reviews[].shelterId

Number

보호소 ID

reviews[].shelterName

String

보호소 이름

reviews[].reviewCreatedAt

String

리뷰 생성일

reviews[].reviewContent

String

리뷰 내용

reviews[].reviewImageUrls

Array

리뷰 이미지 url 리스트

 — 보호소 — 

봉사자가 작성한 후기 리스트 조회

Request

HTTP request
GET /api/shelters/volunteers/1/reviews?pageNumber=0&pageSize=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjIsInJvbGUiOiJST0xFX1NIRUxURVIifQ.wLPypunbxu9iwQn-E2FRNOubn_3_dOSoI8KtvDzVnh858Hg9--mSWdpWZN_vN9ms
X-CSRF-TOKEN: gPe74S9z61b0ulMmyWDKkc3kxK5KZaGCj2xx2UT_ZrtM6x4osMKI2UxE02HZjTZErE3-p_2H6c8oBpCvulhE7SHOX44u331N
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Path parameters
Table 1. /api/shelters/volunteers/{volunteerId}/reviews
Parameter Description

volunteerId

봉사자 ID

Query parameters
필드명 필수값 제약 설명

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 318

{
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  },
  "reviews" : [ {
    "reviewId" : 1,
    "shelterId" : 1,
    "shelterName" : "shelterName",
    "reviewCreatedAt" : "2023-12-16T22:07:02.633237",
    "reviewContent" : "reviewContent",
    "reviewImageUrls" : [ "imageUrl1", "imageUrl2" ]
  } ]
}
Response fields
Path Type Description

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

reviews

Array

리뷰 리스트

reviews[].reviewId

Number

리뷰 ID

reviews[].shelterId

Number

보호소 ID

reviews[].shelterName

String

보호소 이름

reviews[].reviewCreatedAt

String

리뷰 생성일

reviews[].reviewContent

String

리뷰 내용

reviews[].reviewImageUrls

Array

리뷰 이미지 url 리스트

내(보호소)가 받은 후기 리스트 조회

Request

HTTP request
GET /api/shelters/me/reviews?pageNumber=0&pageSize=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMjIsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMjIsInJvbGUiOiJST0xFX1NIRUxURVIifQ.wLPypunbxu9iwQn-E2FRNOubn_3_dOSoI8KtvDzVnh858Hg9--mSWdpWZN_vN9ms
X-CSRF-TOKEN: hD3MN1w26z-7SsTP1lOUiGA6zPMeoyQLvwwzX-yl9nlY3F8AtwiqBG4H012WePaus36gsFIK4ZIulUcm2jtWZ9uRkE9ouT05
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Query parameters
필드명 필수값 제약 설명

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 416

{
  "reviews" : [ {
    "reviewId" : 1,
    "reviewCreatedAt" : "2023-12-16T22:07:02.577982",
    "reviewContent" : "리뷰 본문",
    "reviewImageUrls" : [ "imageUrl" ],
    "volunteerId" : 1,
    "volunteerName" : "봉사자 이름",
    "volunteerTemperature" : 36,
    "volunteerImageUrl" : "imageUrl",
    "volunteerReviewCount" : 1
  } ],
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  }
}
Response fields
Path Type Description

reviews

Array

리뷰 리스트

reviews[].reviewId

Number

리뷰 ID

reviews[].reviewCreatedAt

String

리뷰 생성일

reviews[].reviewContent

String

리뷰 내용

reviews[].reviewImageUrls

Array

리뷰 이미지 url 리스트

reviews[].volunteerId

Number

봉사자 ID

reviews[].volunteerName

String

봉사자 이름

reviews[].volunteerTemperature

Number

봉사자 온도

reviews[].volunteerImageUrl

String

봉사자 프로필 이미지 url

reviews[].volunteerReviewCount

Number

봉사자 리뷰 수

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

보호 동물

 — 공통 — 

보호 동물 검색 & 조회

Request

HTTP request
GET /api/animals?type=DOG&gender=FEMALE&neuteredFilter=IS_NEUTERED&active=ACTIVE&animalSize=SMALL&animalSize=10&age=ADULT&page=0 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.ANCNuMkQ-oaNNSBeMzIm4XNcRDflDptjsjsviBacievBgoei88XdyyKE_yWZv2SM
X-CSRF-TOKEN: knVHbwkzQV-dAebAFMThfra4RbGyt8Gw-4x7720ad_-0mb_6okF3WWoGJzqwMdGhJOnVStSKaNOCh_ednblK21h_Q8eHqIaf
Host: localhost:8080
Query parameters
필드명 필수값 제약 설명

type

DOG, CAT, ETC

보호 동물 종류

gender

MALE, FEMALE

보호 동물 성별

neuteredFilter

true, false

보호 동물 중성화 여부

active

QUIET, NORMAL, ACTIVE, VERY_ACTIVE

보호 동물 성격

animalSize

true

페이지 사이즈

age

BABY, JUNIOR, ADULT, SENIOR

보호 동물 나이

page

true

페이지 번호

Response

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: 259

{
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  },
  "animals" : [ {
    "animalId" : 1,
    "animalName" : "animalName",
    "shelterName" : "shelterName",
    "shelterAddress" : "shelterAddress",
    "animalImageUrl" : "imageUrl"
  } ]
}
Response fields
Path Type Description

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

animals

Array

보호 동물 리스트

animals[].animalId

Number

보호 동물 ID

animals[].animalName

String

보호 동물 이름

animals[].shelterName

String

보호소 이름

animals[].shelterAddress

String

보호소 주소

animals[].animalImageUrl

String

보호 동물 이미지 url

보호 동물 검색 & 조회 v2

Request

HTTP request
GET /api/v2/animals?type=DOG&gender=FEMALE&neuteredFilter=IS_NEUTERED&active=ACTIVE&animalSize=SMALL&animalSize=10&age=ADULT&animalId=1&createdAt=2023-12-16T22%3A06%3A44.354131&page=0 HTTP/1.1
X-CSRF-TOKEN: TWGdAfyqviob18jnnk1sKBvibIEjEb-W90W2Oh9bTtabYrQLeVmvN8qdjRk25a7SrGBYSX2DQeAXJ9u7k3KDCX5if7SvVtFq
Host: localhost:8080
Query parameters
필드명 필수값 제약 설명

type

DOG, CAT, ETC

보호 동물 종류

gender

MALE, FEMALE

보호 동물 성별

neuteredFilter

true, false

보호 동물 중성화 여부

active

QUIET, NORMAL, ACTIVE, VERY_ACTIVE

보호 동물 성격

animalSize

true

페이지 사이즈

age

BABY, JUNIOR, ADULT, SENIOR

보호 동물 나이

animalId

페이지 마지막 보호 동물 ID

createdAt

페이지 마지막 보호 동물 생일

page

true

페이지 번호

Response

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: 267

{
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  },
  "animals" : [ {
    "animalId" : 1,
    "animalName" : "animalName",
    "shelterName" : "shelterName",
    "shelterAddress" : "shelterAddress",
    "animalImageUrl" : "www.aws.s3.com/2"
  } ]
}
Response fields
Path Type Description

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 여부

animals

Array

보호 동물 리스트

animals[].animalId

Number

보호 동물 ID

animals[].animalName

String

보호 동물 이름

animals[].shelterName

String

보호소 이름

animals[].shelterAddress

String

보호소 주소

animals[].animalImageUrl

String

보호 동물 이미지 url

보호 동물 상세 조회

Request

HTTP request
GET /api/animals/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDQsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.ANCNuMkQ-oaNNSBeMzIm4XNcRDflDptjsjsviBacievBgoei88XdyyKE_yWZv2SM
X-CSRF-TOKEN: RgMd1OIsvol0ggjVVk_HQONblYqXIkYpLiEckEarP3Qn_0KFI2d744dK3btZu2nhbmLzJYI4uOuvESIESBV9pHbKDhIUnXuz
Host: localhost:8080
Path parameters
Table 1. /api/animals/{animalId}
Parameter Description

animalId

보호 동물 ID

Response

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: 395

{
  "animalId" : 1,
  "animalName" : "animalName",
  "animalBirthDate" : "2023-12-16",
  "animalType" : "DOG",
  "animalBreed" : "animalBreed",
  "animalGender" : "FEMALE",
  "animalIsNeutered" : true,
  "animalActive" : "NORMAL",
  "animalWeight" : 1.2,
  "animalInformation" : "animalInformation",
  "animalImageUrls" : [ "www.aws.s3.com/2", "www.aws.s3.com/3" ],
  "animalIsAdopted" : false
}
Response fields
Path Type Description

animalId

Number

보호 동물 ID

animalName

String

보호 동물 이름

animalBirthDate

String

보호 동물 출생 날짜

animalType

String

보호 동물 종류

animalBreed

String

보호 동물 품종

animalGender

String

보호 동물 성별

animalIsNeutered

Boolean

보호 동물 중성화 유무

animalActive

String

보호 동물 활동성

animalWeight

Number

보호 동물 몸무게

animalInformation

String

보호 동물 기타 정보

animalImageUrls[]

Array

보호 동물 이미지 url 리스트

animalIsAdopted

Boolean

보호 동물 입양 여부

 — 보호소 — 

보호 동물 등록

Request

HTTP request
POST /api/shelters/animals HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDQsInJvbGUiOiJST0xFX1NIRUxURVIifQ.3K_Ji5WAd7xpzz9-lBNZ7ynEAtJcbCU5ClSanVNH605wv8kB9V0GULsuk9t0sX-g
Content-Length: 253
X-CSRF-TOKEN: i9rGlCMagRdHTp7WD52B98CNzdBOJrP22s4w9iC3nrFIS46R7ev_phUi4HJqLaflarC1x_no4LEsFdbbuPkGlxKC_Iksf-qm
Host: localhost:8080

{
  "name" : "name",
  "birthDate" : "2023-12-16",
  "type" : "DOG",
  "breed" : "품종",
  "gender" : "FEMALE",
  "isNeutered" : false,
  "active" : "QUIET",
  "weight" : 0.7,
  "information" : "기타 정보",
  "imageUrls" : [ "www.aws.s3.com/2" ]
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/shelters/animals/1
Content-Type: application/json;charset=UTF-8
Content-Length: 20

{
  "animalId" : 1
}

내(보호소)가 작성한 보호 동물 목록 조회

Request

HTTP request
GET /api/shelters/animals?keyword=%EA%B2%80%EC%83%89%EC%96%B4&type=DOG&gender=MALE&neuteredFilter=IS_NEUTERED&active=ACTIVE&animalSize=SMALL&age=BABY&page=0&size=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDQsInJvbGUiOiJST0xFX1NIRUxURVIifQ.3K_Ji5WAd7xpzz9-lBNZ7ynEAtJcbCU5ClSanVNH605wv8kB9V0GULsuk9t0sX-g
X-CSRF-TOKEN: tAejQ5L-Ef6ZM2uKL-AZbPDIc-7lLKVLR9eTHR3uD2gu9glJ0TfCIfSYIci0Al7rG80tX8bxXtbXH5BmdOKifn_daVpLwjEv
Host: localhost:8080
Request headers
Name Description

Authorization

액세스 토큰

Response

HTTP request
GET /api/shelters/animals?keyword=%EA%B2%80%EC%83%89%EC%96%B4&type=DOG&gender=MALE&neuteredFilter=IS_NEUTERED&active=ACTIVE&animalSize=SMALL&age=BABY&page=0&size=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDQsInJvbGUiOiJST0xFX1NIRUxURVIifQ.3K_Ji5WAd7xpzz9-lBNZ7ynEAtJcbCU5ClSanVNH605wv8kB9V0GULsuk9t0sX-g
X-CSRF-TOKEN: tAejQ5L-Ef6ZM2uKL-AZbPDIc-7lLKVLR9eTHR3uD2gu9glJ0TfCIfSYIci0Al7rG80tX8bxXtbXH5BmdOKifn_daVpLwjEv
Host: localhost:8080
Request headers
Name Description

Authorization

액세스 토큰

보호 동물 수정

Request

HTTP request
PATCH /api/shelters/animals/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDMsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDMsInJvbGUiOiJST0xFX1NIRUxURVIifQ._jkCzcS7L4KbV0JPGbOjW3S5QAQz7llELcV55CPvp4MOLp0KMkFnEBHuQEfZ4lbX
Content-Length: 266
X-CSRF-TOKEN: WaZh1X75C5gRvs2fmbydNIz6yKoKuhi5ppR26fIdK712pxcIbZcD4EqYOa88ia6ooZGpV7WZ5ZM8iCCUk6ZE35d_E99GlSY6
Host: localhost:8080

{
  "name" : "animalName",
  "birthDate" : "2023-12-16",
  "type" : "DOG",
  "breed" : "animalBreed",
  "gender" : "MALE",
  "isNeutered" : true,
  "active" : "ACTIVE",
  "weight" : 1.2,
  "information" : "animalInformation",
  "imageUrls" : [ "www.aws.s3.com/2" ]
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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

보호 동물 입양 상태 변경

Request

HTTP request
PATCH /api/shelters/animals/1/status HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDQsInJvbGUiOiJST0xFX1NIRUxURVIifQ.3K_Ji5WAd7xpzz9-lBNZ7ynEAtJcbCU5ClSanVNH605wv8kB9V0GULsuk9t0sX-g
Content-Length: 24
X-CSRF-TOKEN: fBgkUd9Li2xKs02TOfNVONCk-VYFb47GtVYgmt-1IBVGcLNGRXwWZ74u6Fhn1i_2Wt5hWuCc1G83CuvrgTQYr73XEyJ_QtZ2
Host: localhost:8080

{
  "isAdopted" : true
}
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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

보호 동물 삭제

Request

HTTP request
DELETE /api/shelters/animals/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMDQsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMDQsInJvbGUiOiJST0xFX1NIRUxURVIifQ.3K_Ji5WAd7xpzz9-lBNZ7ynEAtJcbCU5ClSanVNH605wv8kB9V0GULsuk9t0sX-g
X-CSRF-TOKEN: 4it2qbctNgOkVHbYkt9cPLDIdy4KmIS-UDvJz5Fxf6AFgkzP1BJAmdYfBDaJZBXvpPJoBIiqWk8_qOeTNQ-q-aJHSpA1si37
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Path parameters
Table 1. /api/shelters/animals/{animalId}
Parameter Description

animalId

보호 동물 ID

Response

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

채팅

 — 공통 — 

채팅방 메시지 목록 조회

Request

HTTP request
GET /api/chat/rooms/1/messages?pageNumber=0&pageSize=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1NIRUxURVIifQ.X2leR1Fnf0OsKKbtjULEj8wpSXS2eEFiBH8ny8-bcNGQm9FmTl8cYmkaomKJlqMD
X-CSRF-TOKEN: OI5S1YtF4TurRE3vXQYtctRNCNhYtRtDswZ61Pu1AVEtCCSTDrtj4-p11Q6GcS_aPysZQ-V5JbpujHlugmdJ7J3XZ2cVPRWq
Host: localhost:8080
Path parameters
Table 1. /api/chat/rooms/{chatRoomId}/messages
Parameter Description

chatRoomId

채팅방 ID

Query parameters
필드명 필수값 제약 설명

pageNumber

true

페이지 번호

pageSize

true

페이지 사이즈

Response

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: 244

{
  "chatMessages" : [ {
    "chatSenderId" : 1,
    "chatSenderRole" : "ROLE_VOLUNTEER",
    "chatMessage" : "message",
    "createdAt" : "2023-12-16T22:06:55.675083"
  } ],
  "pageInfo" : {
    "totalElements" : 1,
    "hasNext" : false
  }
}
Response fields
Path Type Description

chatMessages

Array

채팅방 메시지 목록

chatMessages[].chatSenderId

Number

채팅 메시지 발송자 ID

chatMessages[].chatSenderRole

String

채팅 메시지 발송자 역할

chatMessages[].chatMessage

String

채팅 메시지 내용

chatMessages[].createdAt

String

채팅 메시지 발송 시점

pageInfo

Object

페이지 정보

pageInfo.totalElements

Number

총 요소 개수

pageInfo.hasNext

Boolean

다음 페이지 존재 여부

 — 봉사자 — 

채팅방 ID 조회

Request

HTTP request
GET /api/volunteers/chat/rooms/shelters/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.ou-8kCNqWMVh2W0ebXYNHHBRlzCthyiBsq8Nn7SPJj4GqNOVqVoyrnR5ERkn8hl2
X-CSRF-TOKEN: E9nllfafTADSnPgB_sUiciaBvXjNArb6GCbqoGNVHuiXwaRSIL_SpJL7LzH_pc4zz-gWSkKxkEGpYI7XKB_Tk1Q2fNHz-cY3
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Path parameters
Table 1. /api/volunteers/chat/rooms/shelters/{shelterId}
Parameter Description

shelterId

보호소 ID

Response

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: 25

{
  "chatRoomId" : null
}
Response fields
Path Type Description

chatRoomId

Number

채팅방 ID

채팅방 생성

Request

HTTP request
POST /api/volunteers/chat/rooms HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.ou-8kCNqWMVh2W0ebXYNHHBRlzCthyiBsq8Nn7SPJj4GqNOVqVoyrnR5ERkn8hl2
Content-Length: 21
X-CSRF-TOKEN: cerEeKeJ47afbEiQUnxK1nu_jz6-9GBFJ-kA279dmx2B8NH_RtygT5661dOyCSnzYlF-5EzZol-MzFloFNgwud1s_i3ixOGd
Host: localhost:8080

{
  "shelterId" : 1
}
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Request fields
필드명 타입 필수값 제약 설명

shelterId

Number

true

보호소 ID

Response

HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/volunteers/chat/rooms/1
Content-Type: application/json;charset=UTF-8
Content-Length: 22

{
  "chatRoomId" : 1
}
Response headers
Name Description

Location

생성된 채팅방의 URI

Response fields
Path Type Description

chatRoomId

Number

생성된 채팅방 ID

채팅방 목록 조회

Request

HTTP request
GET /api/volunteers/chat/rooms HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.ou-8kCNqWMVh2W0ebXYNHHBRlzCthyiBsq8Nn7SPJj4GqNOVqVoyrnR5ERkn8hl2
X-CSRF-TOKEN: 1s-orH8QtjNBAo9icyMKRfWXcYICIubPdyBuaFmFV9kIvrsf462dz0Z21VFsY7cHRg4-d8SjXLpmR9fiFRVcCTvgYexthoor
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Response

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: 284

{
  "chatRooms" : [ {
    "chatRoomId" : 1,
    "chatRecentMessage" : "최근 메시지",
    "chatPartnerName" : "채팅 상대방 이름",
    "charPartnerImageUrl" : "채팅 상대방 이미지 url",
    "createdAt" : "2023-12-16T22:06:55.591352",
    "chatUnReadCount" : 5
  } ]
}
Response fields
Path Type Description

chatRooms

Array

채팅방 목록

chatRooms[].chatRoomId

Number

채팅방 ID

chatRooms[].chatRecentMessage

String

채팅방 최근 메시지

chatRooms[].chatPartnerName

String

채팅방 상대방 이름

chatRooms[].charPartnerImageUrl

String

채팅방 상대방 이미지 URL

chatRooms[].createdAt

String

채팅방 최근 메시지 발송 시간

chatRooms[].chatUnReadCount

Number

채팅방 최근 메시지 발송 시간

채팅방 상세 조회

Request

HTTP request
GET /api/volunteers/chat/rooms/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.ou-8kCNqWMVh2W0ebXYNHHBRlzCthyiBsq8Nn7SPJj4GqNOVqVoyrnR5ERkn8hl2
X-CSRF-TOKEN: _UWRgvcIw7yh9H_pyvvo8-mD8N4a9k4lay8m6Z6_9NXlqzZ_zXeh45Y79IiMwUze8tbcw4yw3ed7l3sIXRxF0KyIkOSEm1Qa
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Path parameters
Table 1. /api/volunteers/chat/rooms/{chatRoomId}
Parameter Description

chatRoomId

채팅방 ID

Response

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: 78

{
  "chatPartnerImageUrl" : "imageUrl1",
  "chatPartnerName" : "shelterName"
}
Response fields
Path Type Description

chatPartnerImageUrl

String

채팅 상대방 이미지 URL

chatPartnerName

String

채팅 상대방 이름

안 읽은 메시지 총 수 조회

Request

HTTP request
GET /api/volunteers/chat/rooms/unread HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.ou-8kCNqWMVh2W0ebXYNHHBRlzCthyiBsq8Nn7SPJj4GqNOVqVoyrnR5ERkn8hl2
X-CSRF-TOKEN: DGRTJcTWhqPW4vkgHCFbC0ix4zjaj2YrWXu9fryUq6JUhxVEblJmF6Gz5ZP7g8EQfgxvPHyEzgC5u1QGaEKPGI32z5Jmsicl
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Response

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: 28

{
  "totalUnreadCount" : 5
}
Response fields
Path Type Description

totalUnreadCount

Number

안 읽은 메시지 수

 — 보호소 — 

채팅방 목록 조회

Request

HTTP request
GET /api/shelters/chat/rooms HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1NIRUxURVIifQ.X2leR1Fnf0OsKKbtjULEj8wpSXS2eEFiBH8ny8-bcNGQm9FmTl8cYmkaomKJlqMD
X-CSRF-TOKEN: lW1Cm9FpDJ6gsY86Wyct1PTfY-mHN9wzQwVFVgQ4tc59MhU0pQlz_rNbOKqNg7kCbQoZ7MTsTtG0BO4edDR2bzENh_ceUXAG
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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: 284

{
  "chatRooms" : [ {
    "chatRoomId" : 1,
    "chatRecentMessage" : "최근 메시지",
    "chatPartnerName" : "채팅 상대방 이름",
    "charPartnerImageUrl" : "채팅 상대방 이미지 url",
    "createdAt" : "2023-12-16T22:06:55.695675",
    "chatUnReadCount" : 5
  } ]
}
Response fields
Path Type Description

chatRooms

Array

채팅방 목록

chatRooms[].chatRoomId

Number

채팅방 ID

chatRooms[].chatRecentMessage

String

채팅방 최근 메시지

chatRooms[].chatPartnerName

String

채팅방 상대방 이름

chatRooms[].charPartnerImageUrl

String

채팅방 상대방 이미지 URL

chatRooms[].createdAt

String

채팅방 최근 메시지 발송 시간

chatRooms[].chatUnReadCount

Number

채팅방 최근 메시지 발송 시간

채팅방 상세 조회(보호소)

Request

HTTP request
GET /api/shelters/chat/rooms/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1NIRUxURVIifQ.X2leR1Fnf0OsKKbtjULEj8wpSXS2eEFiBH8ny8-bcNGQm9FmTl8cYmkaomKJlqMD
X-CSRF-TOKEN: Yk9bWZvKj3x3VStzlBYrJEN2V2u8x_yG8tOBAqhF8nxEcU6vAXc4OqPz6klaYRhBozsfQCBDegqJ8cWrl-vnNpB2xR9wFS-f
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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: 89

{
  "chatPartnerImageUrl" : "imageUrl",
  "chatPartnerName" : "채팅 상대방 이름"
}
Response fields
Path Type Description

chatPartnerImageUrl

String

채팅 상대방 이미지 URL

chatPartnerName

String

채팅 상대방 이름

안 읽은 메시지 총 수 조회

Request

HTTP request
GET /api/shelters/chat/rooms/unread HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTUsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTUsInJvbGUiOiJST0xFX1NIRUxURVIifQ.X2leR1Fnf0OsKKbtjULEj8wpSXS2eEFiBH8ny8-bcNGQm9FmTl8cYmkaomKJlqMD
X-CSRF-TOKEN: uFnZdVB-KonGevlGmU5CAdA9pZGeS8t1l3dRIIgWrojT4xQb3jzvEWYbT-zrH8x1rWN2YOMJiKn4fvpY9k9gRLlyyuzr0SYr
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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: 28

{
  "totalUnreadCount" : 5
}
Response fields
Path Type Description

totalUnreadCount

Number

안 읽은 메시지 총 개수

알림

 — 봉사자 — 

알림 목록 조회

Request

HTTP request
GET /api/volunteers/notifications HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTgsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTgsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.Sd0Y1nx74gSig8mCOwtx8lWXLi0yyTDaqLX01Bgz1CrKiGt6EUbiYS39iq0UvjMK
X-CSRF-TOKEN: 0C_P6zxzLbA-HH32zunVfhq7Q6_wMgz7KdcdAVBPNNI91e9s5Rf8jVlCHtQTJU3BrMThSXmPbs3HAjXWT-N4OGR2B7Zfs4tZ
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Response

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: 213

{
  "notifications" : [ {
    "notificationId" : 1,
    "notificationTitle" : "title",
    "notificationContent" : "content",
    "notificationIsRead" : false,
    "notificationType" : "VOLUNTEER_APPROVED"
  } ]
}
Response fields
Path Type Description

notifications

ARRAY

보호소 알림 목록

notifications[].notificationId

12

알림 ID

notifications[].notificationTitle

javax.management.openmbean.SimpleType(name=java.lang.String)

알림 제목

notifications[].notificationContent

javax.management.openmbean.SimpleType(name=java.lang.String)

알림 내용

notifications[].notificationIsRead

BOOLEAN

알림 읽음 여부

notifications[].notificationType

javax.management.openmbean.SimpleType(name=java.lang.String)

알림 타입

새로운 알림 여부 조회

Request

HTTP request
GET /api/volunteers/notifications/read HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTgsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTgsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.Sd0Y1nx74gSig8mCOwtx8lWXLi0yyTDaqLX01Bgz1CrKiGt6EUbiYS39iq0UvjMK
X-CSRF-TOKEN: 72rmM3kOVf9aMY-evPnDzcHlB50qAqq21KuGt-opRuH1OaN92QnRC0E3N893U7uvi9T3-PeGKqVIMMub5Zvn0Y5Pf9XECMce
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Response

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: 33

{
  "hasNewNotification" : true
}
Response fields
Path Type Description

hasNewNotification

Boolean

새로운 알림 존재 여부

알림 확인

Request

HTTP request
PATCH /api/volunteers/notifications/read HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTgsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTgsInJvbGUiOiJST0xFX1ZPTFVOVEVFUiJ9.Sd0Y1nx74gSig8mCOwtx8lWXLi0yyTDaqLX01Bgz1CrKiGt6EUbiYS39iq0UvjMK
X-CSRF-TOKEN: C3U2iCM6hzHelda4-1FqLqADSlwJZYsktPvHXiRn1S9p4M02MhBU6hcCvwbz9LTbn3xeTJU1Z2Q6UrMJgp7xakFfsBxR0PsO
Host: localhost:8080
Request headers
Name Description

Authorization

봉사자 액세스 토큰

Response

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

 — 보호소 — 

알림 목록 조회

Request

HTTP request
GET /api/shelters/notifications HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTgsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTgsInJvbGUiOiJST0xFX1NIRUxURVIifQ.IOptDqlH7NPUcxFwiPoRJZ1l_dsLdyb5YgQmSG-Zn5_Q-FYp2-9nnMab1w1gfuHO
X-CSRF-TOKEN: 9ZQmke5kCZwq-VFLQDGkmhlDK4RnTjy5GfmoIqU9sTgoB3U1xfAUpt0FPa4HmmZzdhyQqih6BuZVLQqUep3OEpwFiQpKNREG
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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: 208

{
  "notifications" : [ {
    "notificationId" : 1,
    "notificationTitle" : "title",
    "notificationContent" : "content",
    "notificationIsRead" : false,
    "notificationType" : "NEW_APPLICANT"
  } ]
}
Response fields
Path Type Description

notifications

Array

보호소 알림 목록

notifications[].notificationId

Number

알림 ID

notifications[].notificationTitle

String

알림 제목

notifications[].notificationContent

String

알림 내용

notifications[].notificationIsRead

Boolean

알림 읽음 여부

notifications[].notificationType

String

알림 타입

새로운 알림 여부 조회

Request

HTTP request
GET /api/shelters/notifications/read HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTgsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTgsInJvbGUiOiJST0xFX1NIRUxURVIifQ.IOptDqlH7NPUcxFwiPoRJZ1l_dsLdyb5YgQmSG-Zn5_Q-FYp2-9nnMab1w1gfuHO
X-CSRF-TOKEN: uj3WxKEv5Bp_HHZ4sRF6OO1No-DlxLCDDMi302k835Z9eUP72ArmopAd03xSekUchDxODt4sjtnT94Wub6yCtQ0E76QbSXDI
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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: 33

{
  "hasNewNotification" : true
}
Response fields
Path Type Description

hasNewNotification

Boolean

새로운 알림 존재 여부

알림 확인

Request

HTTP request
PATCH /api/shelters/notification/read HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJpc3N1ZXIiLCJpYXQiOjE3MDI3MzIwMTgsInN1YiI6IjEiLCJleHAiOjE3MDI3MzMwMTgsInJvbGUiOiJST0xFX1NIRUxURVIifQ.IOptDqlH7NPUcxFwiPoRJZ1l_dsLdyb5YgQmSG-Zn5_Q-FYp2-9nnMab1w1gfuHO
X-CSRF-TOKEN: uGXRP4XOU_nys9_D_CFpMhfmpOB_-wc-0iMq4pPpBaT1gTJA2lTkCOD3YZvfhOmimQxdUyLVidlKmGUT4hdO1arcZJbHuAt2
Host: localhost:8080
Request headers
Name Description

Authorization

보호소 액세스 토큰

Response

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

Enum 문서화

1. 봉사자 성별

|봉사자 성별

코드 코드명

MALE

MALE

FEMALE

FEMALE

2. 봉사 신청자 상태

|봉사 신청자 상태

코드 코드명

PENDING

PENDING

REFUSED

REFUSED

ATTENDANCE

ATTENDANCE

NOSHOW

NOSHOW

APPROVED

APPROVED

3. 봉사 모집글 검색 필터

|검색 필터

코드 코드명

IS_TITLE

IS_TITLE

IS_CONTENT

IS_CONTENT

IS_SHELTER_NAME

IS_SHELTER_NAME

ALL

ALL

4. 보호 동물 성격

|보호 동물 성격

코드 코드명

QUIET

QUIET

NORMAL

NORMAL

ACTIVE

ACTIVE

VERY_ACTIVE

VERY_ACTIVE

5. 보호 동물 성별

|보호 동물 성별

코드 코드명

MALE

MALE

FEMALE

FEMALE

6. 보호 동물 나이대

|보호 동물 나이대

코드 코드명

BABY

BABY

JUNIOR

JUNIOR

ADULT

ADULT

SENIOR

SENIOR

7. 보호 동물 사이즈

|보호 동물 크기대

코드 코드명

SMALL

SMALL

MEDIUM

MEDIUM

LARGE

LARGE

8. 보호 동물 종류

|보호 동물 종류

코드 코드명

DOG

DOG

CAT

CAT

ETC

ETC