1. API 목록
2. 투표 기간 관련
2.1. GET: 투표 기간 조회
HTTP Request
GET /contests/1/vote HTTP/1.1
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 82
{
"voteStartAt" : "2026-01-01T00:00:00",
"voteEndAt" : "2026-01-02T00:00:00"
}
| Parameter | Description |
|---|---|
|
대회 ID |
| Path | Type | Description |
|---|---|---|
|
|
투표 시작일 (ISO-8601) |
|
|
투표 종료일 (ISO-8601) |
2.2. PUT: 투표 기간 수정
HTTP Request
PUT /contests/1/vote HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 82
Host: localhost:8080
{
"voteStartAt" : "2026-02-01T00:00:00",
"voteEndAt" : "2026-02-10T00:00:00"
}
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
| Parameter | Description |
|---|---|
|
대회 ID |
| Name | Description |
|---|---|
|
Bearer {accessToken} (관리자) |
| Path | Type | Description |
|---|---|---|
|
|
투표 시작일 (ISO-8601) |
|
|
투표 종료일 (ISO-8601) |
3. 최대 투표 개수 관리
3.1. PATCH: 최대 투표 개수 설정
| Parameter | Description |
|---|---|
|
대회의 고유 ID |
| Name | Description |
|---|---|
|
Bearer {accessToken} (관리자) |
HTTP Request
PATCH /contests/1/votes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 25
Host: localhost:8080
{
"maxVotesLimit" : 2
}
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
| Path | Type | Description |
|---|---|---|
|
|
최대 투표 개수 |
3.1.1. ⚠️ 실패 케이스
❌ Case 1: 존재하지 않는 대회
PATCH /contests/999/votes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 25
Host: localhost:8080
{
"maxVotesLimit" : 2
}
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: 56
{
"message" : "존재하지 않는 대회입니다."
}
❌ Case 2: 투표 진행 중
PATCH /contests/1/votes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 25
Host: localhost:8080
{
"maxVotesLimit" : 2
}
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" : "투표 진행중에는 최대 투표 개수를 변경할 수 없습니다."
}
3.2. GET: 최대 투표 개수 조회
| Parameter | Description |
|---|---|
|
대회의 고유 ID |
| Name | Description |
|---|---|
|
Bearer {accessToken} (관리자) |
HTTP Request
GET /contests/1/votes HTTP/1.1
Authorization: Bearer admin.access.token
Host: localhost:8080
HTTP Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 25
{
"maxVotesLimit" : 2
}
| Path | Type | Description |
|---|---|---|
|
|
최대 투표 개수 |
3.2.1. ⚠️ 실패 케이스
❌ Case 1: 존재하지 않는 대회
GET /contests/999/votes HTTP/1.1
Authorization: Bearer admin.access.token
Host: localhost:8080
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: 56
{
"message" : "존재하지 않는 대회입니다."
}