1. API 목록
좋아요는 PUT/DELETE 두 엔드포인트로 분리되어 있으며, 두 메서드 모두 멱등합니다.
-
PUT /teams/{teamId}/likes→ 좋아요 등록 (이미 등록된 경우 NO-OP, 200 OK) -
DELETE /teams/{teamId}/likes→ 좋아요 취소 (이미 취소된 경우 NO-OP, 204 No Content)
| 좋아요를 통해 팀을 찜할 수 있습니다. |
| 투표 기간에는 좋아요 등록/취소가 불가능하며, 투표 기간이 아닐 때만 가능합니다. |
2. PUT: 팀 좋아요 등록
해당 팀에 대해 좋아요를 등록합니다. 이미 좋아요한 상태에서 호출해도 동일하게 200 OK를 반환합니다 (멱등).
응답 본문은 없습니다.
| Parameter | Description |
|---|---|
|
좋아요할 팀의 ID |
| Name | Description |
|---|---|
|
Bearer {accessToken} |
HTTP Request
PUT /teams/1/likes HTTP/1.1
Authorization: Bearer member.access.token
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
3. DELETE: 팀 좋아요 취소
해당 팀에 대한 좋아요를 취소합니다. 좋아요한 적이 없는 팀에 호출해도 동일하게 204 No Content를 반환합니다 (멱등).
응답 본문은 없습니다.
| Parameter | Description |
|---|---|
|
좋아요를 취소할 팀의 ID |
| Name | Description |
|---|---|
|
Bearer {accessToken} |
HTTP Request
DELETE /teams/1/likes HTTP/1.1
Authorization: Bearer member.access.token
Host: localhost:8080
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
3.1. ⚠️ 실패 케이스
❌ Case 1: 존재하지 않는 팀
PUT /teams/999/likes HTTP/1.1
Authorization: Bearer member.access.token
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 53
{
"message" : "팀이 존재하지 않습니다."
}
❌ Case 2: 투표 기간 중 좋아요 등록 요청
PUT /teams/1/likes HTTP/1.1
Authorization: Bearer member.access.token
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 94
{
"message" : "현재 투표 기간이므로 해당 작업을 수행할 수 없습니다."
}
❌ Case 3: 투표 기간 중 좋아요 취소 요청
DELETE /teams/1/likes HTTP/1.1
Authorization: Bearer member.access.token
Host: localhost:8080
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 94
{
"message" : "현재 투표 기간이므로 해당 작업을 수행할 수 없습니다."
}