1. API 목록

2. POST: 전체 공지사항 생성

전체 공지사항의 contestId는 null 입니다.
Table 1. HTTP Request Headers
Name Description

Authorization

Bearer {accessToken} (관리자)

HTTP Request
POST /notices HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 80
Host: localhost:8080

{
  "title" : "전체 공지 제목",
  "description" : "전체 공지 내용"
}
HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Table 2. Request Fields
Path Type Description

title

String

공지 제목

description

String

공지 내용

3. PATCH: 전체 공지사항 수정

Table 3. HTTP Request Headers
Name Description

Authorization

Bearer {accessToken} (관리자)

HTTP Request
PATCH /notices/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 100
Host: localhost:8080

{
  "title" : "수정된 전체 공지 제목",
  "description" : "수정된 전체 공지 내용"
}
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Table 4. Request Fields
Path Type Description

title

String

수정된 공지 제목

description

String

수정된 공지 내용

Table 5. /notices/{noticeId}
Parameter Description

noticeId

공지 ID

4. DELETE: 전체 공지사항 삭제

Table 6. HTTP Request Headers
Name Description

Authorization

Bearer {accessToken} (관리자)

HTTP Request
DELETE /notices/1 HTTP/1.1
Authorization: Bearer admin.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
Table 7. /notices/{noticeId}
Parameter Description

noticeId

공지 ID

5. GET: 전체 공지사항 상세 조회

HTTP Request
GET /notices/1 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: 178

{
  "title" : "전체 공지 제목",
  "description" : "전체 공지 내용",
  "updatedAt" : "2026-01-27T19:11:01.280465959",
  "createdAt" : "2026-01-27T19:11:01.280468233"
}
Table 8. /notices/{noticeId}
Parameter Description

noticeId

공지 ID

6. GET: 전체 공지사항 목록 조회

HTTP Request
GET /notices 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: 220

[ {
  "noticeId" : 1,
  "title" : "전체 공지 제목 1",
  "createdAt" : "2026-01-27T19:11:01.265745801"
}, {
  "noticeId" : 2,
  "title" : "전체 공지 제목 2",
  "createdAt" : "2026-01-27T19:11:01.265752533"
} ]
Table 9. Response Body’s Fields
Path Type Description

[]

Array

공지 목록

[].noticeId

Number

공지 ID

[].title

String

공지 제목

[].createdAt

String

공지 생성 시각 (ISO-8601)

7. POST: 대회별 공지사항 생성

Table 10. HTTP Request Headers
Name Description

Authorization

Bearer {accessToken} (관리자)

HTTP Request
POST /contests/1/notices HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 66
Host: localhost:8080

{
  "title" : "공지 제목",
  "description" : "공지 내용"
}
Table 11. /contests/{contestId}/notices
Parameter Description

contestId

대회 ID

HTTP Response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Table 12. Request Fields
Path Type Description

title

String

공지 제목

description

String

공지 내용

8. PATCH: 대회별 공지사항 수정

Table 13. HTTP Request Headers
Name Description

Authorization

Bearer {accessToken} (관리자)

HTTP Request
PATCH /contests/1/notices/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer admin.access.token
Content-Length: 106
Host: localhost:8080

{
  "title" : "수정된 대회별 공지 제목",
  "description" : "수정된 대회별 공지 내용"
}
HTTP Response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Table 14. Request Fields
Path Type Description

title

String

수정된 대회별 공지 제목

description

String

수정된 대회별 공지 내용

Table 15. /contests/{contestId}/notices/{noticeId}
Parameter Description

contestId

대회 ID

noticeId

공지 ID

9. DELETE: 대회별 공지사항 삭제

Table 16. HTTP Request Headers
Name Description

Authorization

Bearer {accessToken} (관리자)

HTTP Request
DELETE /contests/1/notices/1 HTTP/1.1
Authorization: Bearer admin.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
Table 17. /contests/{contestId}/notices/{noticeId}
Parameter Description

contestId

대회 ID

noticeId

공지 ID

10. GET: 대회별 공지사항 상세 조회

HTTP Request
GET /contests/1/notices/1 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: 184

{
  "title" : "대회별 공지 제목",
  "description" : "대회별 공지 내용",
  "updatedAt" : "2026-01-27T19:11:01.291406103",
  "createdAt" : "2026-01-27T19:11:01.291408336"
}
Table 18. /contests/{contestId}/notices/{noticeId}
Parameter Description

contestId

대회 ID

noticeId

공지 ID

11. GET: 대회별 공지사항 목록 조회

HTTP Request
GET /contests/1/notices HTTP/1.1
Host: localhost:8080
Table 19. /contests/{contestId}/notices
Parameter Description

contestId

대회 ID

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: 226

[ {
  "noticeId" : 1,
  "title" : "대회별 공지 제목 1",
  "createdAt" : "2026-01-27T19:11:01.331225031"
}, {
  "noticeId" : 2,
  "title" : "대회별 공지 제목 2",
  "createdAt" : "2026-01-27T19:11:01.331229763"
} ]
Table 20. Response Body’s Fields
Path Type Description

[]

Array

공지 목록

[].noticeId

Number

공지 ID

[].title

String

공지 제목

[].createdAt

String

공지 생성 시각 (ISO-8601)