채팅 API - Yapp-17th/Android_2_Backend GitHub Wiki
Endpoint
ws://101.101.219.23:8080/ws/chat/websocket
채팅방 안 - Endpoint
/sub/chat/room/{chatRoomId}
채팅방 목록 - Endpoint
/sub/user/{userId}/chat/room
Endpoint
/pub/v1/chat/message
Request Body
{
"content": "hello",
"type": "TALK",
"senderId": 1,
"chatRoomId": 1,
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
content | String | Message Content | "hello" | O |
type | String | Message Type | TALK | O |
senderId | Long | Sender ID | 1 | O |
chatRoomId | Long | Chat Room ID | 1 | O |
Response Body
✅ success response
{
"id": 1,
"content": "hello",
"type": "TALK",
"isHostRead": false,
"isGuestRead": false,
"chatRoomId": 1,
"senderId" 1,
"senderNickname": "tester",
"createdAt": "2020-10-31T23:12:00.041295"
}
data description
Field | Type | Description | Example |
---|---|---|---|
id | Long | Message ID | 1 |
content | String | Message Content | "hello" |
type | String | Message Type | "TALK" |
isHostRead | boolean | 채팅방 호스트의 채팅 읽음 유무 | true/false |
isGuestRead | boolean | 채팅방 게스트의 채팅 읽음 유무 | true/false |
chatRoomId | Long | 채팅방 아이디 | 1 |
senderId | Long | 전송자 아이디 | 1 |
senderNickname | String | 전송자 닉네임 | "tester" |
createdAt | Date | 메시지가 보내진 시간 | "2020-10-31T23:12:00.041295" |
HTTP Method
POST
Endpoint
http://101.101.219.23/api/chatting-service/v1/chat/room
Request Header
-
Authorization
:Bearer {jwt token}
Request Body
{
"hostId": 1,
"boardId": 1
}
data description
Field | Type | Description | Example |
---|---|---|---|
hostId | Long | 게시글 호스트의 ID | 1 |
boardId | Long | 게시글 ID | 1 |
Response Body
✅ success response
- 성공적으로 채팅방 생성한 경우
{
"transactionTime": "2020-12-03T23:09:57.574623",
"status": 201,
"responseType": "SUCCESS",
"data": {
"id": 9,
"hostId": 1,
"guestId": 2,
"boardId": 18,
"opponentNickname": "소연",
"status": "ACTIVE",
"createdAt": "2020-12-03T23:09:57.477422",
"lastMessage": {
"id": -1,
"content": "",
"type": "",
"realTimeUpdateType": "",
"isHostRead": false,
"isGuestRead": false,
"messageId": -1,
"chatRoomId": -1,
"senderId": -1,
"senderNickname": "",
"createdAt": "2020-12-03T23:09:57.574606"
},
"unreadMessages": -1
}
}
- 이미 채팅방이 존재할 경우
{
"transactionTime": "2020-12-03T23:02:14.716689",
"status": 200,
"responseType": "CHATROOM_ALREADY_CREATED",
"data": {
"id": 2,
"hostId": 1,
"guestId": 2,
"boardId": 1,
"opponentNickname": "소연",
"status": "ACTIVE",
"createdAt": "2020-12-03T17:38:19.405002",
"lastMessage": {
"id": -1,
"content": "",
"type": "",
"realTimeUpdateType": "",
"isHostRead": false,
"isGuestRead": false,
"messageId": -1,
"chatRoomId": -1,
"senderId": -1,
"senderNickname": "",
"createdAt": "2020-12-03T23:02:14.716672"
},
"unreadMessages": -1
}
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 / 201 |
responseType | String | 응답 타입 | "SUCCESS" |
data.id | Long | 채팅방 ID | 1 |
data.hostId | Long | 호스트 ID | 1 |
data.guestId | Long | 게스트 ID | 1 |
data.boardId | Long | 게시글 ID | 1 |
data.status | String | 채팅방 상태 | "ACTIVE" |
data.createdAt | Date | 채팅방 개설 시간 | "2020-10-24T06:35:07.828776" |
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 채팅방 개설을 시도하는 사용자가 데이터베이스에 없을 경우 / 해당 hostId를 가진 사용자가 없는 경우 |
400 | false | "BOARD_NOT_FOUND" | "게시글을 찾을 수 없습니다" | 해당 boardId를 가진 게시글이 없는 경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
HTTP Method
DELETE
Endpoint
http://101.101.219.23/api/chatting-service/v1/chat/room/{chatRoomId}
Request Header
-
Authorization
:Bearer {jwt token}
ResponseBody
✅ success response
{
"transactionTime": "2020-11-06T10:17:20.692338",
"status": 200,
"responseType": "SUCCESS",
"message": "성공적으로 API를 호출했습니다"
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 |
responseType | String | 응답 타입 | "SUCCESS" |
message | String | 응답 메시지 | "성공적으로 API를 호출했습니다" |
- 실시간 웹소켓 메시지
{
"id": -1,
"content": "",
"type": "",
"realTimeUpdateType": "USER_EXITED",
"isHostRead": false,
"isGuestRead": false,
"messageId": -1,
"chatRoomId": -1,
"senderId": -1,
"senderNickname": "",
"createdAt": "2020-10-24T06:35:07.828776"
}
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 채팅방 나가기를 시도하는 사용자가 데이터베이스에 없을 경우 |
400 | false | "CHATROOM_NOT_FOUND" | "채팅방을 찾을 수 없습니다" | 해당 chatRoomId를 가진 채팅방이 없는 경우 |
400 | false | "ALREADY_EXITED" | "이 사용자는 이미 이 채팅방을 나갔습니다" | 해당 채팅방을 이미 나간 경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
HTTP Method
GET
Endpoint
http://101.101.219.23/api/chatting-service/v1/chat/room
Request Header
-
Authorization
:Bearer {jwt token}
Response Body
✅ success response
- 채팅방이 없는 경우
{
"transactionTime": "2020-11-22T23:31:45.041932",
"status": 200,
"responseType": "SUCCESS",
"data": []
}
- 채팅방이 있는 경우
{
"transactionTime": "2020-11-06T14:10:40.482581",
"status": 200,
"responseType": "SUCCESS",
"data": [
{
"id": 1,
"hostId": 1,
"guestId": 2,
"boardId": 1,
"opponentNickname": "tester",
"status": "ACTIVE",
"createdAt": "2020-11-06T14:07:55",
"lastMessage": {
"id": 1,
"content": "반갑습니다. 안전하고 쾌적한 활동을 위해 운동플래닛 이용규칙을 꼭 읽어주세요!",
"type": "BOT_MESSAGE",
"isHostRead": false,
"isGuestRead": false,
"senderId": -9,
"senderNickname": "운동 플래닛 챗봇",
"createdAt": "2020-11-06T14:07:56"
},
"unreadMessages": 1
}
]
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 |
responseType | String | 응답 타입 | "SUCCESS" |
data | List | 채팅방 목록 | [{...}] |
data.id | Long | 채팅방 ID | 1 |
data.hostId | Long | 호스트 ID | 1 |
data.guestId | Long | 게스트 ID | 1 |
data.boardId | Long | 게시글 ID | 1 |
data.opponentNickname | String | 상대방 닉네임 | "tester" |
data.status | String | 채팅방 상태 | "ACTIVE" |
data.createdAt | Date | 채팅방 개설 시간 | "2020-10-24T06:35:07.828776" |
data.unreadMessages | Long | 안읽은 메시지 개수 | 1 |
data.lastMessage | Object | 채팅방의 마지막 메시지 | null/Object |
data.lastMessage.id | Long | 채팅방의 마지막 메시지의 ID | 1 |
data.lastMessage.content | String | 채팅방의 마지막 메시지 내용 | "hello" |
data.lastMessage.type | String | 채팅방의 마지막 메시지의 타입 | "TALK" |
data.lastMessage.senderId | Long | 채팅방의 마지막 메시지의 전송자 ID | 1 |
data.lastMessage.senderNickname | String | 채팅방의 마지막 메시지의 전송자 닉네임 | "tester" |
data.lastMessage.createdAt | Date | 채팅방의 마지막 메시지의 전송 시간 | "2020-10-24T06:35:07.828776" |
data.lastMessage.isHostRead | boolean | 채팅방의 마지막 메시지의 호스트 읽음 유무 | false/true |
data.lastMessage.isGuestRead | boolean | 채팅방의 마지막 메시지의 게스트 읽음 유무 | false/true |
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 채팅방 목록 조회를 시도하는 사용자가 데이터베이스에 없을 경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
HTTP Method
GET
Endpoint
http://101.101.219.23/api/chatting-service/v1/chat/room/{chatRoomId}/message
Request Header
-
Authorization
:Bearer {jwt token}
Response Body
✅ success response
{
"transactionTime": "2020-12-03T23:18:29.155308",
"status": 200,
"responseType": "SUCCESS",
"firstUnreadMessageId": 0,
"boardTitle": "북한산 등산하실분 급구해여",
"isHostExited": false,
"isGuestExited": false,
"appliedStatus": "PENDING",
"data": [
{
"id": 75,
"content": "반갑습니다. 안전하고 쾌적한 활동을 위해 운동플래닛 이용규칙을 꼭 읽어주세요!",
"type": "BOT_NOTICE",
"realTimeUpdateType": "MESSAGE_READ",
"isHostRead": true,
"isGuestRead": true,
"messageId": 0,
"chatRoomId": 9,
"senderId": -9,
"senderNickname": "운동 플래닛 챗봇",
"createdAt": "2020-12-03T23:09:59.35186"
},
{
"id": 76,
"content": "yyy",
"type": "TALK",
"realTimeUpdateType": "MESSAGE_READ",
"isHostRead": true,
"isGuestRead": true,
"messageId": 1,
"chatRoomId": 9,
"senderId": 1,
"senderNickname": "소연",
"createdAt": "2020-12-03T23:15:37.880665"
}
]
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 |
responseType | String | 응답 타입 | "SUCCESS" |
firstUnreadMessageId | Long | 안읽은 첫 메시지의 ID | 1 |
boardTitle | String | 게시글 제목 | "yapp-17th" |
appliedStatus | String | 게스트 승인 상태 | PENDING, APPLIED, APPROVED |
data | List | 채팅방 메시지 리스트 | [{...}] |
data.id | Long | 메시지 ID | 1 |
data.content | String | 메시지 내용 | "hello" |
data.type | String | 메시지 타입 | "TALK", "BOT_MESSAGE", "PROFILE" |
data.messageId | Long | 채팅방별 메시지 ID | 1(0 부터 시작) |
data.chatRoomId | Long | 채팅방 ID | 1 |
data.senderId | Long | 메시지 전송자 ID | 1 |
data.senderNickname | String | 메시지 전송자 닉네임 | "tester" |
data.createdAt | Date | 메시지 전송 시간 | "2020-10-24T06:35:07.828776" |
data.isHostRead | boolean | 메시지의 호스트 읽음 유무 | false/true |
data.isGuestRead | boolean | 메시지의 게스트 읽음 유무 | false/true |
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 채팅방 메시지 조회를 시도하는 사용자가 데이터베이스에 없을 경우 |
400 | false | "CHATROOM_NOT_FOUND" | "채팅방을 찾을 수 없습니다" | 해당 chatRoomId를 가진 채팅방이 없는 경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
HTTP Method
POST
Endpoint
http://101.101.219.23/api/chatting-service/v1/board/{boardId}/apply
Request Header
-
Authorization
:Bearer {jwt token}
Request Body
{
"chatRoomId": 1
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
chatRoomId | Long | 채팅방 ID | 1 | O |
ResponseBody
✅ success response
{
"transactionTime": "2020-11-06T10:17:20.692338",
"status": 200,
"responseType": "SUCCESS",
"message": "성공적으로 API를 호출했습니다"
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 |
responseType | String | 응답 타입 | "SUCCESS" |
message | String | 응답 메시지 | "성공적으로 API를 호출했습니다" |
- 실시간 버튼 업데이트용 웹소켓 메시지
{
"id": -1,
"content": "",
"type": "",
"realTimeUpdateType": APPLIED,
"isHostRead": false,
"isGuestRead": false,
"messageId": -1,
"chatRoomId": -1,
"senderId": -1,
"senderNickname": "",
"createdAt": "2020-10-24T06:35:07.828776"
}
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 게시글 신청을 시도하는 사용자가 데이터베이스에 없을 경우 |
400 | false | "CHATROOM_NOT_FOUND" | "채팅방을 찾을 수 없습니다" | 해당 chatRoomId를 가진 채팅방이 없는 경우 |
400 | false | "BOARD_NOT_FOUND" | "게시글을 찾을 수 없습니다" | 해당 boardId를 가진 게시글이 없는 경우 |
400 | false | "CANNOT_APPLY" | "신청을 할 수 없는 게시글입니다" | 해당 게시글이 완료 혹은 취소가 된 경우 OR 호스트 혹은 게스트가 방을 나간 경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
HTTP Method
POST
Endpoint
http://101.101.219.23/api/chatting-service/v1/board/{boardId}/approve
Request Header
-
Authorization
:Bearer {jwt token}
Request Body
{
"chatRoomId": 1,
"guestId": 2
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
chatRoomId | Long | 채팅방 ID | 1 | O |
guestId | Long | 게스트 ID | 1 | O |
ResponseBody
✅ success response
{
"transactionTime": "2020-11-06T10:17:20.692338",
"status": 200,
"responseType": "SUCCESS",
"message": "성공적으로 API를 호출했습니다"
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 |
responseType | String | 응답 타입 | "SUCCESS" |
message | String | 응답 메시지 | "성공적으로 API를 호출했습니다" |
- 실시간 버튼 업데이트용 웹소켓 메시지
{
"id": -1,
"content": "",
"type": "",
"realTimeUpdateType": APPROVED,
"isHostRead": false,
"isGuestRead": false,
"messageId": -1,
"chatRoomId": -1,
"senderId": -1,
"senderNickname": "",
"createdAt": "2020-10-24T06:35:07.828776"
}
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 호스트가 없는 경우 OR 게스트가 없는 경우 |
400 | false | "CHATROOM_NOT_FOUND" | "채팅방을 찾을 수 없습니다" | 해당 chatRoomId를 가진 채팅방이 없는 경우 |
400 | false | "BOARD_NOT_FOUND" | "게시글을 찾을 수 없습니다" | 해당 boardId를 가진 게시글이 없는 경우 |
400 | false | "CANNOT_APPROVE" | "승인을 할 수 없는 게시글입니다" | 해당 게시글이 완료 혹은 취소가 된 경우 OR 호스트 혹은 게스트가 방을 나간 경우 |
400 | false | "WRONG_CHATROOM_HOST" | "이 사용자는 채팅방의 호스트가 아닙니다" | 승인을 요청하는 사용자가 해당 채팅방의 호스트가 아닌 경우 |
400 | false | "WRONG_CHATROOM_GUEST" | "이 사용자는 채팅방의 게스트가 아닙니다" | 승인을 받으려는 사용자가 해당 채팅방의 게스트가 아닌 경우 |
400 | false | "GUEST_APPLY_NOT_FOUND" | "게스트가 아직 신청하지 않았습니다" | 게스트가 아직 신청을 하지 않은 경우 |
400 | false | "ALREADY_APPROVED" | "이 사용자는 이미 승인받은 상태입니다" | 게스트가 이미 승은을 받은 경우 |
400 | false | "NO_SPACE_TO_APPLY" | "더 이상 승인을 해줄 자리가 없습니다" | 자리가 꽉 차서 더이상 승인을 해주지 못하는 경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
HTTP Method
DELETE
Endpoint
http://101.101.219.23/api/chatting-service/v1/board/{boardId}/approve
Request Header
-
Authorization
:Bearer {jwt token}
Request Body
{
"chatRoomId": 1,
"guestId": 2
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
chatRoomId | Long | 채팅방 ID | 1 | O |
guestId | Long | 게스트 ID | 1 | O |
ResponseBody
✅ success response
{
"transactionTime": "2020-11-06T10:17:20.692338",
"status": 200,
"responseType": "SUCCESS",
"message": "성공적으로 API를 호출했습니다"
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 |
responseType | String | 응답 타입 | "SUCCESS" |
message | String | 응답 메시지 | "성공적으로 API를 호출했습니다" |
- 실시간 버튼 업데이트용 웹소켓 메시지
{
"id": -1,
"content": "",
"type": "",
"realTimeUpdateType": DISAPPROVED,
"isHostRead": false,
"isGuestRead": false,
"messageId": -1,
"chatRoomId": -1,
"senderId": -1,
"senderNickname": "",
"createdAt": "2020-10-24T06:35:07.828776"
}
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 호스트가 없는 경우 OR 게스트가 없는 경우 |
400 | false | "CHATROOM_NOT_FOUND" | "채팅방을 찾을 수 없습니다" | 해당 chatRoomId를 가진 채팅방이 없는 경우 |
400 | false | "BOARD_NOT_FOUND" | "게시글을 찾을 수 없습니다" | 해당 boardId를 가진 게시글이 없는 경우 |
400 | false | "CANNOT_DISAPPROVE" | "거절을 할 수 없는 게시글입니다" | 해당 게시글이 완료 혹은 취소가 된 경우 OR 호스트 혹은 게스트가 방을 나간 경우 |
400 | false | "WRONG_CHATROOM_HOST" | "이 사용자는 채팅방의 호스트가 아닙니다" | 승인을 요청하는 사용자가 해당 채팅방의 호스트가 아닌 경우 |
400 | false | "WRONG_CHATROOM_GUEST" | "이 사용자는 채팅방의 게스트가 아닙니다" | 승인을 받으려는 사용자가 해당 채팅방의 게스트가 아닌 경우 |
400 | false | "IS_NOT_APPROVED" | "이 사용자는 승인 상태가 아닙니다" | 승인되지 않은 사용자인경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
HTTP Method
PUT
Endpoint
http://101.101.219.23/api/chatting-service/v1/chat/room/{chatRoomId}/message/{messageId}
Request Param
-
chatRoomId
: 채팅방의 고유 아이디 -
messageId
: 메시지의 고유 아이디(messageId가 아니라 id입니다)
Request Header
-
Authorization
:Bearer {jwt token}
Response Body
✅ success response
{
"transactionTime": "2020-12-03T23:22:03.174355",
"status": 200,
"responseType": "SUCCESS",
"message": "성공적으로 API를 호출했습니다",
"data": {
"id": 1,
"content": "반갑습니다. 안전하고 쾌적한 활동을 위해 운동플래닛 이용규칙을 꼭 읽어주세요!",
"type": "BOT_NOTICE",
"realTimeUpdateType": "MESSAGE_READ",
"isHostRead": false,
"isGuestRead": true,
"messageId": 0,
"chatRoomId": 1,
"senderId": -9,
"senderNickname": "운동 플래닛 챗봇",
"createdAt": "2020-12-03T16:25:50.104428"
}
}
data description
Field | Type | Description | Example |
---|---|---|---|
transactionTime | Date | 서버 요청 시간 | "2020-10-24T06:35:07.828776" |
status | Integer | 응답 상태코드 | 200 |
responseType | String | 응답 타입 | "SUCCESS" |
message | String | 응답 메시지 | "성공적으로 API를 호출했습니다" |
data | Object | 업데이트된 메시지 객체 |
🚫 error response
{
"status":{{Integer}},
"success": {{Boolean}},
"responseType": {{String}},
"message": {{String}}
}
data description
Field | Type | Description | Example | Required |
---|---|---|---|---|
status | integer | HTTP STATUS CODE | 500 | O |
success | boolean | 성공 여부 | false | O |
responseType | String | 오류 실패 타입 | "USER_NOT_FOUND" | O |
message | String | 오류 실패 메세지 | "사용자를 찾을 수 없습니다" | O |
status | success | responseType | message | 상황 |
---|---|---|---|---|
401 | false | "INACTIVE_USER_FAIL" | "회원 가입이 필요합니다." | 탈퇴한 사용자가 게시판 작성을 시도했을 경우 |
403 | false | "SUSPENDED_USER_FAIL" | "신고로 정지된 사용자입니다." | 정지된 사용자가 게시판 작성을 시도했을 경우 |
400 | false | "USER_NOT_FOUND" | "사용자를 찾을 수 없습니다" | 요청을 보낸 사용자가 없는 경우 |
400 | false | "CHATROOM_NOT_FOUND" | "채팅방을 찾을 수 없습니다" | 해당 chatRoomId를 가진 채팅방이 없는 경우 |
400 | false | "MESSAGE_NOT_FOUND" | "메시지를 찾을 수 없습니다" | 해당 messageId를 가진 메시지가 없는 경우 |
400 | false | "INVALID_METHOD" | "메소드 유형이 잘못 되었습니다." | POST가 아닌 다른 메소드로 요청한 경우 |
500 | false | "INTERNAL_SERVER_ERROR" | "서버 내부 오류" | 서버 내부 오류 |
Endpoint
ws://101.101.219.23:8080/pub/v1/chat/message/update
Request Body
{
"content": "[1,2,3,4,5]",
"type": "UPDATE",
"senderId": 1,
"chatRoomId": 1
}
content
안에는 message_id가 아니라 id입니다.
data description
Field | Type | Description | Example |
---|---|---|---|
content | String | 읽음 처리를 할 메시지들의 ID 리스트 | "[1,2,3]" |
type | String | 메시지 타입 | "UPDATE" |
senderId | Long | 전송자 ID | 1 |
chatRoomId | Long | 채팅방 ID | 1 |