-
Notifications
You must be signed in to change notification settings - Fork 2
BookChatAPI
Status Code |
Common Mean |
Usage |
200 |
Success |
요청 정상 처리 |
400 |
Bad Request |
요청이 부적절한 경우 |
401 |
UnAuthorized |
인증되지 않은 사용자 |
403 |
Forbidden |
권한이 없거나 차단된 사용자 |
404 |
NotFound |
조회결과가 없는 경우 |
Request
Field |
Type |
Optional |
Description |
|
String |
false |
리프레쉬 토큰 |
POST /v1/api/auth/token HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 419
Host: bookchat.link
{"refreshToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJCb29rQ2hhdCIsImRlZmF1bHRQcm9maWxlSW1hZ2VUeXBlIjoxLCJwcm92aWRlciI6Imtha2FvIiwidXNlck5pY2tuYW1lIjoidGVzdFVzZXJOaWNrbmFtZSIsInVzZXJOYW1lIjoidGVzdFVzZXIiLCJ1c2VyUHJvZmlsZUltYWdlVXJpIjoic29tZXRoaW5nSW1hZ2VVcmxAbmF2ZXIuY29tIiwidXNlclJvbGUiOiJST0xFX1VTRVIiLCJleHAiOjE3MzI0MzkzMTAsInVzZXJJZCI6IjEiLCJlbWFpbCI6InRlc3RAZ21haWwuY29tIn0.r-fR4k2o954Dp_-a-BEPnXUr2dJ7L0HeAULfOhSVkpI"}
Response
Path | Type | Description |
---|---|---|
|
|
엑세스 토큰 |
|
|
리프레쉬 토큰 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 836
{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJCb29rQ2hhdCIsImRlZmF1bHRQcm9maWxlSW1hZ2VUeXBlIjoxLCJwcm92aWRlciI6Imtha2FvIiwidXNlck5pY2tuYW1lIjoidGVzdFVzZXJOaWNrbmFtZSIsInVzZXJOYW1lIjoidGVzdFVzZXIiLCJ1c2VyUHJvZmlsZUltYWdlVXJpIjoic29tZXRoaW5nSW1hZ2VVcmxAbmF2ZXIuY29tIiwidXNlclJvbGUiOiJST0xFX1VTRVIiLCJleHAiOjE3MzEyMzExMTAsInVzZXJJZCI6IjEiLCJlbWFpbCI6InRlc3RAZ21haWwuY29tIn0.xpbY-OZmXmvXDsZvnAi0HNN-p6tZ1ejLGHZI29ZCT6w","refreshToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJCb29rQ2hhdCIsImRlZmF1bHRQcm9maWxlSW1hZ2VUeXBlIjoxLCJwcm92aWRlciI6Imtha2FvIiwidXNlck5pY2tuYW1lIjoidGVzdFVzZXJOaWNrbmFtZSIsInVzZXJOYW1lIjoidGVzdFVzZXIiLCJ1c2VyUHJvZmlsZUltYWdlVXJpIjoic29tZXRoaW5nSW1hZ2VVcmxAbmF2ZXIuY29tIiwidXNlclJvbGUiOiJST0xFX1VTRVIiLCJleHAiOjE3MzI0MzkzMTAsInVzZXJJZCI6IjEiLCJlbWFpbCI6InRlc3RAZ21haWwuY29tIn0.r-fR4k2o954Dp_-a-BEPnXUr2dJ7L0HeAULfOhSVkpI"}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
GET /v1/api/users/profile HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
사용자 ID |
|
|
닉네임 |
|
|
프로필 사진 URI |
|
|
기본 이미지 타입 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 126
{"userId":1,"userNickname":"testUserNickname","userProfileImageUri":"somethingImageUrl@naver.com","defaultProfileImageType":1}
Request
Parameter |
Optional |
Description |
|
false |
사용자 nickname |
GET /v1/api/users/profile/nickname?nickname=HiBs HTTP/1.1
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Error Response
HTTP/1.1 409 Conflict
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Requset
Part | Optional | Description |
---|---|---|
|
false |
변경할 닉네임 |
|
true |
프로필 이미지 [200 x 200].webp |
changeUserNicknameRequest
Path | Type | Optional | Description |
---|---|---|---|
|
|
false |
변경할 닉네임 |
|
|
false |
프로필 이미지 변경 여부 |
POST /v1/api/users/profile HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=userProfileImage
test
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=changeUserNicknameRequest
Content-Type: application/json
{"nickname":"newNickname","isProfileChanged":true}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [openid token] |
Request
Part | Optional | Description |
---|---|---|
|
false |
회원가입 입력 폼 |
|
true |
프로필 이미지 [200 x 200].webp |
userSignUpRequest
Path | Type | Optional | Description |
---|---|---|---|
|
|
false |
닉네임 |
|
|
true |
기본 이미지 타입 |
|
|
true |
독서 취향 |
|
|
false |
프로바이더 타입[kakao/google] |
POST /v1/api/users/signup HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
OIDC: Bearer eyJraWQiOiJhYmNlZGYiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwiaXNzIjoiaHR0cHM6Ly9rYXV0aC5rYWthby5jb20iLCJlbWFpbCI6InRlc3RAZ21haWwuY29tIn0.YHqXp3Noznet_pP-Umt3o4ifp81O052ELvst2DmbxN7soeHLCsDWnI79xxpstUhKfUZ1XGyqey8wyllu9fJJZpHyyHX1qBjRFtrJ0Ghj_4E6m8W_YB1b4Hwv0QlXNqxigPcT1p9xnr5XvoxarpslAyvl_IUNZKO6u4zQ7iFjCiV-4GCRB082ZktoIx4P8YZw3WqnGi2V3buSmWoG-evEQQbWQBJ6C9Y-vEyA2aCCSU-Vl2A3aN5-fbE_h2OiKXdm44nDye8GWak2r9pg84ufvB-pUMAP5PdkYNIvNMmVt0PDkww2uSNahz7odig83xSU8g-3FofxsNcmDPRkug88_w
Host: bookchat.link
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=userProfileImage
test
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=userSignUpRequest
Content-Type: application/json
{"nickname":"nick","defaultProfileImageType":1,"readingTastes":["개발","예술","과학"],"oauth2Provider":"kakao"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Error Response
요청 오류(Authorization Header 없을 시)
POST /v1/api/users/signup HTTP/1.1
Authorization:
Host: bookchat.link
Content-Type: application/x-www-form-urlencoded
nickname=nick&userEmail=kaktus418%40gmail.com&oauth2Provider=kakao&defaultProfileImageType=2
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 78
{"errorCode":"500","message":"예상치 못한 예외가 발생했습니다."}
요청 오류(Authorization Header에 빈 토큰으로 요청시)
POST /v1/api/users/signup HTTP/1.1
Authorization: Bearer
Host: bookchat.link
Content-Type: application/x-www-form-urlencoded
nickname=nick&defaultProfileImageType=2
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 78
{"errorCode":"500","message":"예상치 못한 예외가 발생했습니다."}
요청 오류(Authorization Bearer 양식에 맞지 않을 때)
POST /v1/api/users/signup HTTP/1.1
Authorization: TearereyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0In0.ljsVdbOiejW1sUMDrUm_GS18V77pD_vpcVGpNA7SKQzVJHwaqX5tw6LUu7zHNfRJ63MczAUnvoVHCKZ_2gkMWdOPKyRNiyTC1X_7Sqe9_84neqJX-m9Pq1aj4yNtoZMIgxLCsDP7A9H80LmeQ0c6PQr2qZVIbZ7sVr9lCN9J5IBmuEK9mSrvBWCAY_rO6iVelhgqs5bpyQHnt12namP_4xCBXcz_gZSLfxrSD25Pzt1k0XqZaqpRCLK4GZg7xDd346xh80mEigo2O6kyAnFFk1HB1MV4zRJzJRd-tvUiwBnetXz-1Uc-KDpDSzxk9S0PFnuh_0lpL-EI7ERBtKKQLA
Host: bookchat.link
Content-Type: application/x-www-form-urlencoded
defaultProfileImageType=1&nickname=testName
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 78
{"errorCode":"500","message":"예상치 못한 예외가 발생했습니다."}
만료된 토큰
POST /v1/api/users/signup HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
OIDC: Bearer eyJraWQiOiJhYmNkZWZnIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2thdXRoLmtha2FvLmNvbSIsInN1YiI6InRlc3QiLCJleHAiOjB9.LZCwNer7fEt6pRnsRWAHPoLO6Hqb3XQyhOYUsJoWXUGGg8z48H474eACTgKVaRG6RrVu-bvm2tQ-BwAf81WQQsgU87xN4T4cz0lzRti4hMeM-G-yollDhDsFr39gg1ikpUzHzku4UsS_MMKy087pmVg7NhWvFyrdj1rDyoBBVXGSRo54rP7ACG9ZHtlvwO99Ts7xw3aVTqPIadQx0B15oIBP1-scQlghGJlssDwmWXSnflPE5tgboQQYi2gB3-kKjuX1zJ6ksv76F4pCIvBSYpv-jA5Pn49u0GSbj-OGSDo8_MC1uOcZ1gEDNI41-CcRQt3qJDqEYtWDJ7Jfv7Z_Wg
Host: bookchat.link
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=userProfileImage
testImage
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=userSignUpRequest
Content-Type: application/json
{"nickname":"nick","defaultProfileImageType":1,"readingTastes":["개발","예술","과학"],"oauth2Provider":"kakao"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
HTTP/1.1 401 Unauthorized
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 62
{"errorCode":"4010001","message":"만료된 토큰입니다."}
올바르지 않은 요청 파라미터
POST /v1/api/users/signup HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0In0.ljsVdbOiejW1sUMDrUm_GS18V77pD_vpcVGpNA7SKQzVJHwaqX5tw6LUu7zHNfRJ63MczAUnvoVHCKZ_2gkMWdOPKyRNiyTC1X_7Sqe9_84neqJX-m9Pq1aj4yNtoZMIgxLCsDP7A9H80LmeQ0c6PQr2qZVIbZ7sVr9lCN9J5IBmuEK9mSrvBWCAY_rO6iVelhgqs5bpyQHnt12namP_4xCBXcz_gZSLfxrSD25Pzt1k0XqZaqpRCLK4GZg7xDd346xh80mEigo2O6kyAnFFk1HB1MV4zRJzJRd-tvUiwBnetXz-1Uc-KDpDSzxk9S0PFnuh_0lpL-EI7ERBtKKQLA
Host: bookchat.link
Content-Type: application/x-www-form-urlencoded
nickname=&userEmail=abcdefg&oauth2Provider=
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 78
{"errorCode":"500","message":"예상치 못한 예외가 발생했습니다."}
Request Header
Name | Description |
---|---|
|
Bearer [openid token] |
Request
Field |
Type |
Optional |
Description |
|
String |
false |
프로바이더 타입[kakao/google] |
|
String |
false |
FCM Token |
|
String |
false |
Unique Device Id |
|
Boolean |
true |
기기 변경 승인 |
POST /v1/api/users/signin HTTP/1.1
Content-Type: application/json;charset=UTF-8
OIDC: Bearer eyJraWQiOiJhYmNlZGYiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwiaXNzIjoiaHR0cHM6Ly9rYXV0aC5rYWthby5jb20iLCJlbWFpbCI6InRlc3RAZ21haWwuY29tIn0.YHqXp3Noznet_pP-Umt3o4ifp81O052ELvst2DmbxN7soeHLCsDWnI79xxpstUhKfUZ1XGyqey8wyllu9fJJZpHyyHX1qBjRFtrJ0Ghj_4E6m8W_YB1b4Hwv0QlXNqxigPcT1p9xnr5XvoxarpslAyvl_IUNZKO6u4zQ7iFjCiV-4GCRB082ZktoIx4P8YZw3WqnGi2V3buSmWoG-evEQQbWQBJ6C9Y-vEyA2aCCSU-Vl2A3aN5-fbE_h2OiKXdm44nDye8GWak2r9pg84ufvB-pUMAP5PdkYNIvNMmVt0PDkww2uSNahz7odig83xSU8g-3FofxsNcmDPRkug88_w
Content-Length: 101
Host: bookchat.link
{"fcmToken":"5Nh2lN","deviceToken":"JI82uSMi","approveChangingDevice":false,"oauth2Provider":"kakao"}
Response
Path | Type | Description |
---|---|---|
|
|
Access Token |
|
|
Refresh Token |
Error Response
요청 오류(Authorization Header 없을 시)
POST /v1/api/users/signup HTTP/1.1
Authorization:
Host: bookchat.link
Content-Type: application/x-www-form-urlencoded
nickname=nick&userEmail=kaktus418%40gmail.com&oauth2Provider=kakao&defaultProfileImageType=2
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 78
{"errorCode":"500","message":"예상치 못한 예외가 발생했습니다."}
요청 오류(Authorization Header에 빈 토큰으로 요청시)
POST /v1/api/users/signin HTTP/1.1
OIDC: Bearer
Host: bookchat.link
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 78
{"errorCode":"500","message":"예상치 못한 예외가 발생했습니다."}
요청 오류(Authorization Bearer 양식에 맞지 않을 때)
POST /v1/api/users/signin HTTP/1.1
OIDC: Tearer eyJraWQiOiJhYmNlZGYiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwiaXNzIjoiaHR0cHM6Ly9rYXV0aC5rYWthby5jb20iLCJlbWFpbCI6InRlc3RAZ21haWwuY29tIn0.YHqXp3Noznet_pP-Umt3o4ifp81O052ELvst2DmbxN7soeHLCsDWnI79xxpstUhKfUZ1XGyqey8wyllu9fJJZpHyyHX1qBjRFtrJ0Ghj_4E6m8W_YB1b4Hwv0QlXNqxigPcT1p9xnr5XvoxarpslAyvl_IUNZKO6u4zQ7iFjCiV-4GCRB082ZktoIx4P8YZw3WqnGi2V3buSmWoG-evEQQbWQBJ6C9Y-vEyA2aCCSU-Vl2A3aN5-fbE_h2OiKXdm44nDye8GWak2r9pg84ufvB-pUMAP5PdkYNIvNMmVt0PDkww2uSNahz7odig83xSU8g-3FofxsNcmDPRkug88_w
Host: bookchat.link
HTTP/1.1 400 Bad Request
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 78
{"errorCode":"500","message":"예상치 못한 예외가 발생했습니다."}
만료된 토큰
POST /v1/api/users/signin HTTP/1.1
Content-Type: application/json;charset=UTF-8
OIDC: Bearer eyJraWQiOiJhYmNkZWZnIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2thdXRoLmtha2FvLmNvbSIsInN1YiI6InRlc3QiLCJleHAiOjB9.LZCwNer7fEt6pRnsRWAHPoLO6Hqb3XQyhOYUsJoWXUGGg8z48H474eACTgKVaRG6RrVu-bvm2tQ-BwAf81WQQsgU87xN4T4cz0lzRti4hMeM-G-yollDhDsFr39gg1ikpUzHzku4UsS_MMKy087pmVg7NhWvFyrdj1rDyoBBVXGSRo54rP7ACG9ZHtlvwO99Ts7xw3aVTqPIadQx0B15oIBP1-scQlghGJlssDwmWXSnflPE5tgboQQYi2gB3-kKjuX1zJ6ksv76F4pCIvBSYpv-jA5Pn49u0GSbj-OGSDo8_MC1uOcZ1gEDNI41-CcRQt3qJDqEYtWDJ7Jfv7Z_Wg
Content-Length: 95
Host: bookchat.link
{"fcmToken":"jMYy","deviceToken":"40vB5","approveChangingDevice":null,"oauth2Provider":"kakao"}
HTTP/1.1 401 Unauthorized
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 62
{"errorCode":"4010001","message":"만료된 토큰입니다."}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
POST /v1/api/users/logout HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
DELETE /v1/api/users HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
PUT /v1/api/devices/fcm-token HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 32
Host: bookchat.link
{"fcmToken":"changed fcm token"}
Field |
Type |
Optional |
Description |
|
String |
false |
FCM Token |
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
회원 ID |
GET /v1/api/members?memberId=1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
사용자 ID |
|
|
닉네임 |
|
|
프로필 사진 URI |
|
|
기본 이미지 타입 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 91
{"userId":1,"userNickname":"test","userProfileImageUri":"test","defaultProfileImageType":1}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
검색 키워드 [ISBN, 도서명, 저자명] |
|
false |
한 번에 조회할 책의 수 - page 당 size |
|
false |
한 번에 조회할 page 수 |
|
false |
조회시 정렬 옵션 |
GET /v1/api/books?query=1231513&size=5&page=1&sort=ACCURACY HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Resopnse
Path | Type | Description |
---|---|---|
|
|
ISBN |
|
|
제목 |
|
|
출간일 |
|
|
저자 |
|
|
출판사 |
|
|
책 표지 이미지 |
|
|
마지막 페이지 여부 |
|
|
가져온 페이지 수 |
|
|
총 페이지 수 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 234
{"bookResponses":[{"isbn":"213123","title":"effectiveJava","publishAt":"2014-11-17","authors":["Joshua"],"publisher":"testPublisher","bookCoverImageUrl":"bookCoverImageUrl"}],"meta":{"is_end":false,"pageable_count":5,"total_count":5}}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
GET /v1/api/bookshelves/234 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
BookShelf Id |
|
|
제목 |
|
|
ISBN |
|
|
책 커버 이미지 URI |
|
|
저자 |
|
|
출판사 |
|
|
출판일자 |
|
|
서재 수정 일자 |
|
|
현재 읽고 있는 페이지 번호 |
|
|
평점 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 246
{"bookShelfId":12,"title":"effectiveJava","isbn":"124151214","bookCoverImageUrl":"bookCoverImage.com","publishAt":"2024-11-10","authors":["Joshua"],"publisher":"oreilly","star":"FOUR_HALF","pages":152,"lastUpdatedAt":"2024-11-10T17:59:23.005476"}
Request Header
Name | Description |
---|---|
|
Bearer [openid token] |
Request
Field |
Type |
Optional |
Description |
|
String |
false |
ISBN |
|
String |
false |
제목 |
|
Array |
false |
저자 |
|
String |
false |
출판사 |
|
String |
true |
책 커버 이미지 URI |
|
String |
false |
출판일 |
|
String |
false |
WISH |
POST /v1/api/bookshelves HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 204
Host: bookchat.link
{"bookRequest":{"isbn":"124151214","title":"effectiveJava","authors":["Joshua"],"publisher":"oreilly","bookCoverImageUrl":"bookCoverImage.com","publishAt":"2024-11-10"},"readingStatus":"WISH","star":null}
Response
Name | Description |
---|---|
|
등록된 책 조회 URI |
HTTP/1.1 201 Created
Location: /v1/api/bookshelves/456
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Field |
Type |
Optional |
Description |
|
String |
false |
ISBN |
|
String |
false |
제목 |
|
Array |
false |
저자 |
|
String |
false |
출판사 |
|
String |
true |
책 커버 이미지 URI |
|
String |
false |
출판일 |
|
String |
false |
READING |
POST /v1/api/bookshelves HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 207
Host: bookchat.link
{"bookRequest":{"isbn":"124151214","title":"effectiveJava","authors":["Joshua"],"publisher":"oreilly","bookCoverImageUrl":"bookCoverImage.com","publishAt":"2024-11-10"},"readingStatus":"READING","star":null}
Response
Name | Description |
---|---|
|
등록된 책 조회 URI |
HTTP/1.1 201 Created
Location: /v1/api/bookshelves/456
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Reqeust Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Field |
Type |
Optional |
Description |
|
String |
false |
ISBN |
|
String |
false |
제목 |
|
Array |
false |
저자 |
|
String |
false |
출판사 |
|
String |
true |
책 커버 이미지 URI |
|
String |
false |
출판일 |
|
String |
false |
COMPLETE |
|
String |
false |
평점 |
POST /v1/api/bookshelves HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 210
Host: bookchat.link
{"bookRequest":{"isbn":"124151214","title":"effectiveJava","authors":["Joshua"],"publisher":"oreilly","bookCoverImageUrl":"bookCoverImage.com","publishAt":"2024-11-10"},"readingStatus":"COMPLETE","star":"FOUR"}
Response
Name | Description |
---|---|
|
등록된 책 조회 URI |
HTTP/1.1 201 Created
Location: /v1/api/bookshelves/456
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
WISH |
|
false |
page 당 size |
|
false |
한번에 조회할 page수 |
|
false |
등록순-id | 변경순-updatedAt |
GET /v1/api/bookshelves?readingStatus=WISH&size=5&page=1&sort=id,DESC HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
BookShelf Id |
|
|
제목 |
|
|
ISBN |
|
|
책 커버 이미지 URI |
|
|
저자 |
|
|
출판사 |
|
|
출판일자 |
|
|
서재 수정 일자 |
|
|
현재 읽고 있는 페이지 번호 |
|
|
평점 |
|
|
전체 ROW 수 |
|
|
총 페이지 수 |
|
|
요청한 페이지 사이즈 |
|
|
현재 페이지 번호 |
|
|
ROW 시작 번호 |
|
|
시작 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
content 비어있는지 여부 |
{"pageMeta":{"totalElements":1,"totalPages":1,"pageSize":1,"pageNumber":0,"offset":0,"first":true,"last":true,"empty":false},"contents":[{"bookShelfId":1,"title":"effectiveJava","isbn":"12345","bookCoverImageUrl":"testBookCoverImageUrl","publishAt":"2024-11-10","authors":["joshua"],"publisher":"jpub","star":null,"pages":152,"lastUpdatedAt":"2024-11-10T17:59:22.795961"}]}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
READING |
|
false |
page 당 size |
|
false |
한번에 조회할 page수 |
|
false |
등록순-id | 변경순-updatedAt |
GET /v1/api/bookshelves?readingStatus=READING&size=5&page=1&sort=id,DESC HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
BookShelf Id |
|
|
제목 |
|
|
ISBN |
|
|
책 커버 이미지 URI |
|
|
저자 |
|
|
출판사 |
|
|
출판일자 |
|
|
서재 수정 일자 |
|
|
현재 읽고 있는 페이지 번호 |
|
|
평점 |
|
|
전체 ROW 수 |
|
|
총 페이지 수 |
|
|
요청한 페이지 사이즈 |
|
|
현재 페이지 번호 |
|
|
ROW 시작 번호 |
|
|
시작 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
content 비어있는지 여부 |
{"pageMeta":{"totalElements":1,"totalPages":1,"pageSize":1,"pageNumber":0,"offset":0,"first":true,"last":true,"empty":false},"contents":[{"bookShelfId":1,"title":"effectiveJava","isbn":"12345","bookCoverImageUrl":"testBookCoverImageUrl","publishAt":"2024-11-10","authors":["joshua"],"publisher":"jpub","star":null,"pages":152,"lastUpdatedAt":"2024-11-10T17:59:22.862511"}]}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
COMPLETE |
|
false |
page 당 size |
|
false |
한번에 조회할 page수 |
|
false |
등록순-id | 변경순-updatedAt |
GET /v1/api/bookshelves?readingStatus=COMPLETE&size=5&page=1&sort=id,DESC HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
BookShelf Id |
|
|
제목 |
|
|
ISBN |
|
|
책 커버 이미지 URI |
|
|
저자 |
|
|
출판사 |
|
|
출판일자 |
|
|
서재 수정 일자 |
|
|
현재 읽고 있는 페이지 번호 |
|
|
평점 |
|
|
전체 ROW 수 |
|
|
총 페이지 수 |
|
|
요청한 페이지 사이즈 |
|
|
현재 페이지 번호 |
|
|
ROW 시작 번호 |
|
|
시작 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
content 비어있는지 여부 |
{"pageMeta":{"totalElements":1,"totalPages":1,"pageSize":1,"pageNumber":0,"offset":0,"first":true,"last":true,"empty":false},"contents":[{"bookShelfId":1,"title":"effectiveJava","isbn":"12345","bookCoverImageUrl":"testBookCoverImageUrl","publishAt":"2024-11-10","authors":["joshua"],"publisher":"jpub","star":"FOUR_HALF","pages":152,"lastUpdatedAt":"2024-11-10T17:59:22.575415"}]}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
ISBN 번호 |
|
false |
출판일 |
GET /v1/api/bookshelves/book?isbn=1234567891011+0123456789&publishAt=2024-11-10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
책이 등록된 서재 ID |
|
|
서재에 등록된 책의 현재 상태 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 40
{"bookShelfId":1,"readingStatus":"WISH"}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Field |
Type |
Optional |
Description |
|
Number |
true |
현재 읽고 있는 페이지 번호 |
|
String |
true |
현재 책의 별점 |
|
String |
false |
현재 책의 독서상태 |
PUT /v1/api/bookshelves/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 51
Host: bookchat.link
{"pages":137,"star":null,"readingStatus":"READING"}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
Field |
Type |
Optional |
Description |
|
Number |
true |
현재 읽고 있는 페이지 번호 |
|
String |
true |
현재 책의 별점 |
|
String |
false |
변경할 독서상태 |
PUT /v1/api/bookshelves/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 52
Host: bookchat.link
{"pages":null,"star":null,"readingStatus":"READING"}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
Field |
Type |
Optional |
Description |
|
Null |
true |
현재 읽고 있는 페이지 번호 |
|
String |
true |
변경할 별점 |
|
String |
false |
변경할 독서상태 |
PUT /v1/api/bookshelves/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 60
Host: bookchat.link
{"pages":null,"star":"FOUR_HALF","readingStatus":"COMPLETE"}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
Field |
Type |
Optional |
Description |
|
Null |
true |
현재 읽고 있는 페이지 번호 |
|
String |
true |
변경할 별점 |
|
String |
false |
현재 책의 독서상태 |
PUT /v1/api/bookshelves/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 60
Host: bookchat.link
{"pages":null,"star":"FOUR_HALF","readingStatus":"COMPLETE"}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
DELETE /v1/api/bookshelves/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
Field |
Type |
Optional |
Description |
|
String |
false |
독후감 제목 |
|
String |
false |
독후감 내용 |
POST /v1/api/bookshelves/1/report HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 112
Host: bookchat.link
{"title":"어렵지만 많이 배웠다","content":"요런 요런 내용, 저런저런 내용을 많이 배움"}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
GET /v1/api/bookshelves/1/report HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
독후감 제목 |
|
|
독후감 내용 |
|
|
독후감 작성 시간 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 116
{"reportTitle":"재미있네","reportContent":"다 읽은 후기 알려드립니다","reportCreatedAt":"2024-11-10"}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
DELETE /v1/api/bookshelves/1/report HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
Field |
Type |
Optional |
Description |
|
String |
false |
독후감 제목 |
|
String |
false |
독후감 내용 |
PUT /v1/api/bookshelves/1/report HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 251
Host: bookchat.link
{"title":"제목 바꿔버리기","content":"내용은 바꿀수도 아닐수도 있기 때문에 이전 상태 값을 완전히 가지고있기 때문에 똑같이 보내주거나 바꿔서 보내주세요 put으로 멱등성을 보장해줍시다."}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Field |
Type |
Optional |
Description |
|
Number |
false |
서재 ID |
|
String |
false |
스크랩 내용 |
POST /v1/api/scraps HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 54
Host: bookchat.link
{"bookShelfId":1,"scrapContent":"스크랩할 내용"}
Response
Name | Description |
---|---|
|
생성된 스크랩 URI |
HTTP/1.1 201 Created
Location: /v1/api/scraps/0
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
서재 Id |
|
true |
마지막 커서 ID |
|
true |
페이지 사이즈 |
GET /v1/api/scraps?bookShelfId=1&postCursorId=5&size=3 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 264
{"scrapResponseList":[{"scrapId":1,"scrapContent":"content1"},{"scrapId":2,"scrapContent":"content2"},{"scrapId":3,"scrapContent":"content3"}],"cursorMeta":{"sliceSize":3,"contentSize":3,"hasContent":true,"hasNext":true,"nextCursorId":3,"first":true,"last":false}}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
scrap id |
GET /v1/api/scraps/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
scrap id |
|
|
scrap content |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 39
{"scrapId":1,"scrapContent":"content1"}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
false |
서재 Id |
Parameter | Description |
---|---|
|
scrap id |
DELETE /v1/api/scraps/1,%202,%203?bookShelfId=1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
Field |
Type |
Optional |
Description |
|
String |
false |
고민 제목 |
|
String |
false |
고민 폴더 색상 |
POST /v1/api/bookshelves/1/agonies HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 42
Host: bookchat.link
{"title":"title","hexColorCode":"#062498"}
Response
Name | Description |
---|---|
|
생성된 고민 폴더 URI |
HTTP/1.1 201 Created
Location: /v1/api/bookshelves/1/agonies/0
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
Agony Id |
GET /v1/api/bookshelves/1/agonies/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
고민 Id |
|
|
고민 제목 |
|
|
16진수 색상 코드 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 55
{"agonyId":1,"title":"고민1","hexColorCode":"빨강"}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
Parameter |
Optional |
Description |
|
false |
page 당 size |
|
false |
[최신순] - id,DESC | [등록순] - id,ASC |
|
true |
마지막 커서 ID |
GET /v1/api/bookshelves/1/agonies?size=2&sort=id,DESC&postCursorId=1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
고민 Id |
|
|
고민 제목 |
|
|
16진수 색상 코드 |
|
|
현재 슬라이스 크기 |
|
|
현재 슬라이스에 담긴 내용물 크기 |
|
|
현재 슬라이스 내용물 유/무 |
|
|
다음 슬라이스 유무 |
|
|
마지막 슬라이스 여부 |
|
|
처음 슬라이스 여부 |
|
|
다음 커서 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 256
{"agonyResponseList":[{"agonyId":1,"title":"고민1","hexColorCode":"빨강"},{"agonyId":2,"title":"고민2","hexColorCode":"파랑"}],"cursorMeta":{"sliceSize":2,"contentSize":2,"hasContent":true,"hasNext":true,"nextCursorId":2,"first":true,"last":false}}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
삭제할 고민폴더 ID |
DELETE /v1/api/bookshelves/1/agonies/1,2,3 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
Agony Id |
Field |
Type |
Optional |
Description |
|
String |
false |
고민 폴더 이름 |
|
String |
false |
고민 폴더 색 |
PUT /v1/api/bookshelves/1/agonies/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 55
Host: bookchat.link
{"title":"고민 바꾸기","hexColorCode":"보라색"}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
Agony Id |
Field |
Type |
Optional |
Description |
|
String |
false |
고민기록의 제목 |
|
String |
true |
고민기록의 내용 |
POST /v1/api/bookshelves/1/agonies/1/records HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 36
Host: bookchat.link
{"title":"title","content":"blabla"}
Response
Name | Description |
---|---|
|
생성된 고민기록의 URI |
HTTP/1.1 201 Created
Location: /v1/api/bookshelves/1/agonies/1/records/0
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
Agony Id |
|
Record Id |
GET /v1/api/bookshelves/1/agonies/1/records/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
고민 기록 Id |
|
|
고민 기록 제목 |
|
|
고민 기록 내용 |
|
|
고민 기록 생성 시간 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 102
{"agonyRecordId":1,"agonyRecordTitle":"title","agonyRecordContent":"content","createdAt":"2024-11-10"}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
Agony Id |
Parameter |
Optional |
Description |
|
true |
마지막 커서 ID |
|
false |
page당 size |
|
false |
[최신순] - id,DESC | [등록순] - id,ASC |
GET /v1/api/bookshelves/1/agonies/1/records?postCursorId=1&size=2&sort=id,ASC HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
고민 기록 Id |
|
|
고민 기록 제목 |
|
|
고민 기록 내용 |
|
|
고민 가장 최근 수정시간 |
|
|
현재 슬라이스 크기 |
|
|
현재 슬라이스에 담긴 내용물 크기 |
|
|
현재 슬라이스 내용물 유/무 |
|
|
다음 슬라이스 유무 |
|
|
마지막 슬라이스 여부 |
|
|
처음 슬라이스 여부 |
|
|
다음 커서 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 360
{"agonyRecordResponseList":[{"agonyRecordId":2,"agonyRecordTitle":"title1","agonyRecordContent":"content1","createdAt":"2024-11-10"},{"agonyRecordId":3,"agonyRecordTitle":"title2","agonyRecordContent":"content2","createdAt":"2024-11-10"}],"cursorMeta":{"sliceSize":2,"contentSize":2,"hasContent":true,"hasNext":false,"nextCursorId":3,"first":true,"last":true}}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
Agony Id |
|
Record Id |
DELETE /v1/api/bookshelves/1/agonies/1/records/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Reqeust Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
BookShelf Id |
|
Agony Id |
|
Record Id |
Field |
Type |
Optional |
Description |
|
String |
false |
고민 기록 제목 |
|
String |
false |
고민 기록 내용 |
PUT /v1/api/bookshelves/1/agonies/1/records/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Content-Length: 97
Host: bookchat.link
{"recordTitle":"수정된 고민 기록 제목","recordContent":"수정된 고민 기록 내용"}
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Part | Optional | Description |
---|---|---|
|
false |
채팅방 생성 폼 |
|
true |
채팅방 이미지 [200x200].webp |
createChatRoomRequest
Path | Type | Optional | Description |
---|---|---|---|
|
|
false |
채팅 방 이름 |
|
|
false |
채팅 방 인원 수 |
|
|
false |
기본 이미지 타입 번호 |
|
|
true |
해시 태그 |
|
|
false |
ISBN 번호 |
|
|
false |
책 제목 |
|
|
false |
출판사 |
|
|
false |
책 표지 이미지 url |
|
|
false |
저자 목록 |
|
|
false |
출판일 |
POST /v1/api/chatrooms HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=chatRoomImage
Content-Type: image/webp
test
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=createChatRoomRequest
Content-Type: application/json
{"roomName":"effective java 부수는 방","roomSize":5,"defaultRoomImageType":1,"hashTags":["Java","스터디"],"bookRequest":{"isbn":"124151214","title":"effective java","authors":["joshua"],"publisher":"insight","bookCoverImageUrl":"testImageUrl","publishAt":"2024-11-10"}}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response Header
Name | Description |
---|---|
|
채팅방 접속 Connection Url |
Resposne
HTTP/1.1 201 Created
Location: /v1/api/chatrooms/1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Room Id |
GET /v1/api/chatrooms/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
채팅방 인원수 |
|
|
채팅방 태그 |
|
|
채팅방 이름 |
|
|
책 제목 |
|
|
책 커버 이미지 url |
|
|
책 저자 |
|
|
방장 Id |
|
|
방장 닉네임 |
|
|
방장 프로필 이미지 url |
|
|
방장 기본 프로필 이미지 타입 |
|
|
부방장 Id |
|
|
부방장 닉네임 |
|
|
부방장 프로필 이미지 url |
|
|
부방장 기본 프로필 이미지 타입 |
|
|
참여자 Id |
|
|
참여자 닉네임 |
|
|
참여자 프로필 이미지 url |
|
|
참여자 기본 프로필 이미지 타입 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 683
{"roomSize":100,"roomTags":["개발","DB"],"roomName":"test room name","bookTitle":"RealMySQL","bookCoverImageUrl":"realmysql@s3.com","bookAuthors":["author1","author2"],"roomHost":{"id":1,"nickname":"마스터","profileImageUrl":"test@s3.com","defaultProfileImageType":1},"roomSubHostList":[{"id":2,"nickname":"서브 마스터1","profileImageUrl":null,"defaultProfileImageType":2},{"id":3,"nickname":"서브 마스터2","profileImageUrl":"subHost@s3.com","defaultProfileImageType":3}],"roomGuestList":[{"id":4,"nickname":"게스트1","profileImageUrl":null,"defaultProfileImageType":4},{"id":5,"nickname":"게스트2","profileImageUrl":"guest@s3.com","defaultProfileImageType":1}]}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
true |
책 ID |
|
true |
마지막 커서 ID |
|
true |
페이지 사이즈 |
GET /v1/api/users/chatrooms?bookId=1&postCursorId=0&size=3 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
채팅방 ID |
|
|
채팅방 이름 |
|
|
채팅방 SID |
|
|
채팅방 현재 인원수 |
|
|
기본 이미지 타입 번호 |
|
|
채팅방 이미지 URI |
|
|
방장 ID |
|
|
방장 닉네임 |
|
|
방장 프로필 이미지 |
|
|
방장 기본 프로필 이미지 타입 |
|
|
책 제목 |
|
|
책 커버 이미지 |
|
|
책 저자 |
|
|
마지막 채팅 보낸 사람 ID |
|
|
마지막 채팅 보낸 사람 닉네임 |
|
|
마지막 채팅 보낸 사람 프로필 이미지 |
|
|
마지막 채팅 보낸 사람 기본 프로필 이미지 타입 |
|
|
마지막 채팅 ID |
|
|
마지막 채팅 내용 |
|
|
마지막 채팅 발송 시간 |
|
|
현재 슬라이스 크기 |
|
|
현재 슬라이스에 담긴 내용물 크기 |
|
|
현재 슬라이스 내용물 유/무 |
|
|
다음 슬라이스 유무 |
|
|
마지막 슬라이스 여부 |
|
|
처음 슬라이스 여부 |
|
|
다음 커서 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2047
{"userChatRoomResponseList":[{"roomId":1,"roomName":"이펙티브 자바 부수는 방","roomSid":"secret1","roomMemberCount":2,"defaultRoomImageType":1,"roomImageUri":null,"hostId":1,"hostNickname":"host 별명","hostProfileImageUrl":"host Profile Image Url","hostDefaultProfileImageType":1,"bookTitle":"effective java","bookCoverImageUrl":"effectivejava@s3.com","bookAuthors":["Joshua","JJU"],"senderId":1,"senderNickname":"sender Nickname","senderProfileImageUrl":"sender Profile Image Url","senderDefaultProfileImageType":3,"lastChatId":1,"lastChatContent":"이펙티브 자바 부수는 방 입니다.","lastChatDispatchTime":"2024-11-10T18:01:46.515077"},{"roomId":2,"roomName":"이펙티브 코틀린 부수는 방","roomSid":"secret2","roomMemberCount":2,"defaultRoomImageType":1,"roomImageUri":null,"hostId":1,"hostNickname":"host 별명","hostProfileImageUrl":"host Profile Image Url","hostDefaultProfileImageType":1,"bookTitle":"effective kotlin","bookCoverImageUrl":"effectivekotlin@s3.com","bookAuthors":["marcin mosckala"],"senderId":1,"senderNickname":"sender Nickname","senderProfileImageUrl":"sender Profile Image Url","senderDefaultProfileImageType":3,"lastChatId":2,"lastChatContent":"이펙티브 코틀린 부수는 방 입니다.","lastChatDispatchTime":"2024-11-10T18:01:46.515103"},{"roomId":3,"roomName":"토비의 스프링 부수는 방","roomSid":"secret3","roomMemberCount":2,"defaultRoomImageType":1,"roomImageUri":null,"hostId":1,"hostNickname":"host 별명","hostProfileImageUrl":"host Profile Image Url","hostDefaultProfileImageType":1,"bookTitle":"toby spring","bookCoverImageUrl":"tobyspring@s3.com","bookAuthors":["21min"],"senderId":1,"senderNickname":"sender Nickname","senderProfileImageUrl":"sender Profile Image Url","senderDefaultProfileImageType":3,"lastChatId":3,"lastChatContent":"토비의 스프링 부수는 방 입니다.","lastChatDispatchTime":"2024-11-10T18:01:46.515111"}],"cursorMeta":{"sliceSize":3,"contentSize":3,"hasContent":true,"hasNext":true,"nextCursorId":3,"first":true,"last":false}}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Room Id |
GET /v1/api/users/chatrooms/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
채팅방 ID |
|
|
채팅방 이름 |
|
|
채팅방 SID |
|
|
채팅방 현재 인원수 |
|
|
채팅방 이미지 URI |
|
|
기본 이미지 타입 번호 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 129
{"roomId":1,"roomName":"testRoom","roomSid":"testSid","roomMemberCount":3,"roomImageUri":"testImageUri","defaultRoomImageType":1}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter |
Optional |
Description |
|
true |
마지막 커서 ID |
|
true |
페이지 사이즈 |
|
true |
채팅방 이름 |
|
true |
책 제목 |
|
true |
책 ISBN |
|
true |
채팅방 TAG |
GET /v1/api/chatrooms?postCursorId=0&size=3&roomName=effective&title=effectiveJava&isbn=12314-12414&tags=test1,test2,test3 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
채팅방 ID |
|
|
채팅방 이름 |
|
|
채팅방 SID |
|
|
책 제목 |
|
|
책 커버 이미지 URI |
|
|
책 저자 |
|
|
방장 ID |
|
|
방장 닉네임 |
|
|
방장 기본 프로필이미지 타입 |
|
|
방장 프로필이미지 |
|
|
채팅방 현재 인원수 |
|
|
채팅방 정원 |
|
|
기본 이미지 타입 번호 |
|
|
채팅방 이미지 URI |
|
|
채팅방 TAG |
|
|
마지막 채팅 보낸 사람 ID |
|
|
마지막 채팅 ID |
|
|
마지막 채팅 내용 |
|
|
마지막 채팅 발송 시간 |
|
|
현재 슬라이스 크기 |
|
|
현재 슬라이스에 담긴 내용물 크기 |
|
|
현재 슬라이스 내용물 유/무 |
|
|
다음 슬라이스 유무 |
|
|
마지막 슬라이스 여부 |
|
|
처음 슬라이스 여부 |
|
|
다음 커서 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1657
{"chatRoomResponseList":[{"roomId":1,"roomName":"WLMRXZ","roomSid":"Dhb","bookTitle":"book1","bookCoverImageUri":"book1CoverImage@s3","bookAuthors":["author1","author2","author3"],"hostId":1,"hostName":"host1","hostDefaultProfileImageType":1,"hostProfileImageUri":"host1ProfileImage@s3","roomMemberCount":3,"roomSize":100,"defaultRoomImageType":1,"roomImageUri":"n8QpVmc","tags":"tag1,tag2,tag3","lastChatSenderId":1,"lastChatId":1,"lastChatMessage":"lastChatMessage","lastChatDispatchTime":"2024-11-10T18:01:46.159543"},{"roomId":2,"roomName":"R501","roomSid":"1vaaPp","bookTitle":"book2","bookCoverImageUri":"book2CoverImage@s3","bookAuthors":["author4","author5","author6"],"hostId":2,"hostName":"host2","hostDefaultProfileImageType":2,"hostProfileImageUri":"host2ProfileImage@s3","roomMemberCount":100,"roomSize":100,"defaultRoomImageType":3,"roomImageUri":"7jutu0i0","tags":"tag4,tag2,tag3","lastChatSenderId":3,"lastChatId":2,"lastChatMessage":"lastChatMessage2","lastChatDispatchTime":"2024-11-10T18:01:46.159683"},{"roomId":3,"roomName":"86H8735E","roomSid":"3YzLGXR7","bookTitle":"book3","bookCoverImageUri":"book3CoverImage@s3","bookAuthors":["author7","author8","author9"],"hostId":203,"hostName":"host3","hostDefaultProfileImageType":3,"hostProfileImageUri":"host3ProfileImage@s3","roomMemberCount":1000,"roomSize":3000,"defaultRoomImageType":2,"roomImageUri":"sUzZNOV","tags":"tag1,tag5,tag6","lastChatSenderId":8391,"lastChatId":4,"lastChatMessage":"lastChatMessage3","lastChatDispatchTime":"2024-11-10T18:01:46.159703"}],"cursorMeta":{"sliceSize":3,"contentSize":3,"hasContent":true,"hasNext":true,"nextCursorId":4,"first":true,"last":false}}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Part | Optional | Description |
---|---|---|
|
false |
채팅방 수정 폼 |
|
true |
채팅방 이미지 [200x200].webp |
reviseChatRoomRequest
Path | Type | Optional | Description |
---|---|---|---|
|
|
false |
채팅방 id |
|
|
true |
채팅방 이름 |
|
|
true |
채팅방 크기 |
|
|
true |
채팅방 태그 |
|
|
false |
프로필 이미지 변경 여부 |
POST /v1/api/chatrooms/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=reviseChatRoomRequest
Content-Type: application/json
{"roomId":1,"roomName":"changedRoomName","roomSize":200,"tags":["tag5","tag6"],"isProfileChanged":true}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=chatRoomImage
Content-Type: image/webp
test
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Room id |
POST /v1/api/enter/chatrooms/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Requset Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Room id |
DELETE /v1/api/leave/chatrooms/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Room Id |
|
User Id |
Parameter |
Optional |
Description |
|
false |
[HOST | SUBHOST | GUEST] |
PATCH /v1/api/chatrooms/1/participants/2?participantStatus=SUBHOST HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Room Id |
|
User Id |
DELETE /v1/api/chatrooms/1/participants/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Chat Id |
GET /v1/api/chats/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
채팅 Id |
|
|
채팅방 Id |
|
|
메세지 내용 |
|
|
메세지 발송 시간 |
|
|
송신자 Id |
|
|
송신자 닉네임 |
|
|
송신자 프로필 이미지 Url |
|
|
송신자 기본 프로필 이미지 타입 |
|
|
방장 id |
|
|
방장 닉네임 |
|
|
방장 프로필 이미지 Url |
|
|
방장 기본 프로필 이미지 타입 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 303
{"chatId":1,"chatRoomId":1,"message":"first chat","dispatchTime":"2024-11-10T18:01:47.800457","sender":{"id":1,"nickname":"test","profileImageUrl":"test-image-url.com","defaultProfileImageType":1},"host":{"id":2,"nickname":"host","profileImageUrl":"test-host-image-url.com","defaultProfileImageType":3}}
Request Header
Name | Description |
---|---|
|
Bearer [JWT token] |
Request
Parameter | Description |
---|---|
|
Room Id |
Parameter |
Optional |
Description |
|
false |
contents 개수 |
|
false |
[최신순] - id,DESC | [입력순] - id,ASC |
|
true |
마지막 커서 Id |
GET /v1/api/chatrooms/1/chats?size=2&sort=id,DESC&postCursorId=3 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0IiwicHJvdmlkZXIiOiJnb29nbGUiLCJuYW1lIjoiZ29vZ2xlMTIzIiwiZW1haWwiOiJ0ZXN0QGdtYWlsLmNvbSJ9.LKub56oLOIJFlTzNiwxqH0V4SubOOBiIZESje9yJDco
Host: bookchat.link
Response
Path | Type | Description |
---|---|---|
|
|
채팅 Id |
|
|
송신자 Id |
|
|
메세지 내용 |
|
|
메세지 발송 시간 |
|
|
현재 슬라이스 크기 |
|
|
현재 슬라이스에 담긴 내용물 크기 |
|
|
현재 슬라이스 내용물 유/무 |
|
|
다음 슬라이스 유무 |
|
|
마지막 슬라이스 여부 |
|
|
처음 슬라이스 여부 |
|
|
다음 커서 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 420
{"chatResponseList":[{"chatId":1,"senderId":1,"message":"first chat","dispatchTime":"2024-11-10T18:01:47.730623"},{"chatId":2,"senderId":2,"message":"second chat","dispatchTime":"2024-11-10T18:01:47.730690"},{"chatId":3,"senderId":3,"message":"welcome","dispatchTime":"2024-11-10T18:01:47.730696"}],"cursorMeta":{"sliceSize":3,"contentSize":3,"hasContent":true,"hasNext":true,"nextCursorId":3,"first":true,"last":false}}
CONNECT
Authorization: Bearer [JWT Token]
host: wss://bookchat.link/stomp-connection
^@
roomSid |
/topic/{roomSid} |
UUID |
/topic/heho |
SUBSCRIBE
Authorization: Bearer [JWT Token]
host: wss://bookchat.link/topic/[heho]
^@
SUBSCRIBE
Authorization: Bearer [JWT Token]
host: wss://bookchat.link/user/exchange/amq.direct/error
^@