Closed seokulee closed 1 week ago
friendship 서비스는 사용자들이 친구 관계를 관리할 수 있도록 지원하는 RESTful API를 제공합니다. 주요 기능은 다음과 같습니다:
friendship
Authorization: Bearer <JWT 토큰>
401 Unauthorized
/api/friends/request/
POST
<JWT 토큰>
{ "receiver_id": "<int>" }
receiver_id
성공 (201 Created):
{ "message": "Friend request sent successfully." }
에러 응답 예시:
이미 친구 요청을 보낸 경우 (400 Bad Request):
{ "error": "Friend request already sent." }
자신에게 친구 요청을 보내는 경우 (400 Bad Request):
{ "error": "You cannot send a friend request to yourself." }
대상 사용자가 존재하지 않는 경우 (404 Not Found):
{ "error": "Receiver user does not exist." }
POST /api/friends/request/ Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh... { "receiver_id": 2 }
/api/friends/accept/
{ "requester_id": "<int>" }
requester_id
{ "message": "Friend request accepted." }
{ "error": "No pending friend request found." }
/api/friends/reject/
성공 (200 OK): { "message": "Friend request rejected." }
{ "message": "Friend request rejected." }
/api/friends/remove/
DELETE
{ "friend_id": "<int>" }
friend_id
**성공 (200 OK): { "message": "Friend removed successfully." }
{ "message": "Friend removed successfully." }
{ "error": "Friend relationship not found." }
`
/api/friends/
GET
성공 (200 OK): [ { "id": 2, "username": "friend_username", "email": "friend@example.com", "profile_image": "https://example.com/profile.jpg" }, { "id": 3, "username": "another_friend", "email": "another@example.com", "profile_image": "https://example.com/profile2.jpg" } // ... ]
[ { "id": 2, "username": "friend_username", "email": "friend@example.com", "profile_image": "https://example.com/profile.jpg" }, { "id": 3, "username": "another_friend", "email": "another@example.com", "profile_image": "https://example.com/profile2.jpg" } // ... ]
{ "detail": "Authentication credentials were not provided." }
/api/friends/requests/
성공 (200 OK): [ { "id": 1, "username": "requester_username", "email": "requester@example.com", "profile_image": "https://example.com/profile.jpg" }, // ... ]
[ { "id": 1, "username": "requester_username", "email": "requester@example.com", "profile_image": "https://example.com/profile.jpg" }, // ... ]
Authentication_app
API 명세
개요
friendship
서비스는 사용자들이 친구 관계를 관리할 수 있도록 지원하는 RESTful API를 제공합니다. 주요 기능은 다음과 같습니다:인증 및 권한
Authorization: Bearer <JWT 토큰>
을 포함해야 합니다.401 Unauthorized
상태 코드로 응답됩니다.API 엔드포인트
1. 친구 요청 전송
/api/friends/request/
POST
요청 헤더
<JWT 토큰>
요청 바디
receiver_id
(int): 친구 요청을 받을 사용자의 ID응답
성공 (201 Created):
에러 응답 예시:
이미 친구 요청을 보낸 경우 (400 Bad Request):
자신에게 친구 요청을 보내는 경우 (400 Bad Request):
대상 사용자가 존재하지 않는 경우 (404 Not Found):
예시
2. 친구 요청 수락
/api/friends/accept/
POST
요청 헤더
<JWT 토큰>
요청 바디
requester_id
(int): 친구 요청을 보낸 사용자의 ID응답
에러 응답 예시:
3. 친구 요청 거절
/api/friends/reject/
POST
요청 헤더
<JWT 토큰>
요청 바디
{ "requester_id": "<int>" }
requester_id
(int): 친구 요청을 보낸 사용자의 ID응답
성공 (200 OK):
{ "message": "Friend request rejected." }
에러 응답 예시:
{ "error": "No pending friend request found." }
4. 친구 삭제
/api/friends/remove/
DELETE
요청 헤더
<JWT 토큰>
요청 바디
{ "friend_id": "<int>" }
friend_id
(int): 삭제할 친구의 사용자 ID응답
**성공 (200 OK):
{ "message": "Friend removed successfully." }
에러 응답 예시:
{ "error": "Friend relationship not found." }
`
5. 친구 목록 조회
/api/friends/
GET
요청 헤더
<JWT 토큰>
응답
성공 (200 OK):
[ { "id": 2, "username": "friend_username", "email": "friend@example.com", "profile_image": "https://example.com/profile.jpg" }, { "id": 3, "username": "another_friend", "email": "another@example.com", "profile_image": "https://example.com/profile2.jpg" } // ... ]
에러 응답 예시:
{ "detail": "Authentication credentials were not provided." }
6. 받은 친구 요청 목록 조회
/api/friends/requests/
GET
요청 헤더
<JWT 토큰>
응답
성공 (200 OK):
[ { "id": 1, "username": "requester_username", "email": "requester@example.com", "profile_image": "https://example.com/profile.jpg" }, // ... ]
에러 응답 예시:
{ "detail": "Authentication credentials were not provided." }
HTTP 상태 코드
참고 사항
Authentication_app
의 API를 호출하여 사용자 정보를 가져옵니다.엔드포인트 요약표
/api/friends/request/
/api/friends/accept/
/api/friends/reject/
/api/friends/remove/
/api/friends/
/api/friends/requests/