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를 반환합니다 (멱등).

응답 본문은 없습니다.

Table 1. /teams/{teamId}/likes
Parameter Description

teamId

좋아요할 팀의 ID

Table 2. HTTP Request Headers
Name Description

Authorization

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를 반환합니다 (멱등).

응답 본문은 없습니다.

Table 3. /teams/{teamId}/likes
Parameter Description

teamId

좋아요를 취소할 팀의 ID

Table 4. HTTP Request Headers
Name Description

Authorization

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" : "현재 투표 기간이므로 해당 작업을 수행할 수 없습니다."
}