1. 유저
1.1. 유저가 신청한 모든 행사 조회
Request
GET /api/v1/users/events?page=1&size=10&sort=id%2Casc HTTP/1.1
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Query Parameter
Name | Description | Optional |
---|---|---|
|
페이지 |
true |
|
페이지 내 개수 |
true |
|
정렬 방법(ex. id,desc) |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 413
{
"data" : [ {
"id" : 1,
"title" : "제목",
"location" : "위치",
"clubName" : "클럽1 이름",
"posterImageUrl" : "null포스터 파일명",
"startDate" : "2023-09-21",
"participationStatus" : "PENDING",
"ticketCount" : 0
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 10,
"totalPages" : 1,
"totalElements" : 1
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
페이지 내 이벤트 정보 |
|
|
이벤트 아이디 |
|
|
이벤트 제목 |
|
|
이벤트 위치 |
|
|
이벤트 주최자 |
|
|
포스터 URL |
|
|
이벤트 시작일 |
|
|
이벤트 신청 상태 |
|
|
신청한 티켓 수 |
|
|
페이지 정보 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 내 개수 |
|
|
총 페이지 개수 |
|
|
총 이벤트 개수 |
1.2. 유저의 클럽 목록 조회
Request
GET /api/v1/users/clubs HTTP/1.1
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 186
[ {
"id" : 1,
"logoImageUrl" : "null클럽 이미지 URL",
"name" : "클럽1 이름"
}, {
"id" : 2,
"logoImageUrl" : "null클럽 이미지 URL",
"name" : "클럽2 이름"
} ]
Response Body
Path | Type | Description |
---|---|---|
|
|
클럽 |
|
|
클럽 아이디 |
|
|
클럽 이미지 Url |
|
|
클럽 이름 |
1.3. 카카오 로그인으로 회원가입한 유저 - 신규 유저일 경우
Request
POST /api/v1/users/oauths?_csrf=EpRJBjKcUxPQNrwx-_f-QWUbt1ShfV25tFJYzPEmTsWQ9h7lK6YvYASrZCv9BIsDn9rKI1UqmjaRRT6U1zFh9MFAKKahxy3W HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 26
Host: localhost:8080
{
"code" : "123456789"
}
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
카카오 로그인 코드 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 63
{
"userId" : 1,
"accessToken" : "",
"refreshToken" : ""
}
Response Body
Path | Type | Description |
---|---|---|
|
|
유저 ID |
|
|
access token |
|
|
refresh token |
1.4. 카카오 로그인으로 회원가입한 유저 - 기존 유저일 경우
Request
POST /api/v1/users/oauths?_csrf=vxrPVbfGAqZJkDPoFp3dHcb6eBTFzlH5cAqoRyHPICrf0NGbjSv2bdL_YJFk8grYcrDpeKeZVXb9-GjUEzzJJUf3FUzo5rD- HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 26
Host: localhost:8080
{
"code" : "123456789"
}
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
카카오 로그인 코드 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 88
{
"userId" : 1,
"accessToken" : "access token",
"refreshToken" : "refresh token"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
유저 ID |
|
|
access token |
|
|
refresh token |
1.5. 신규 유저일 경우 필수 정보 작성
Request
POST /api/v1/users?_csrf=MjAy_mxZy-rAuvUosVqrNr_qZ_HXfhjmOZthc1asYp7F87EAV1YAzFVor9rtjcFMgnefAtzcSsjvHHnLCf1WEjOcVa6hkdJh HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 102
Host: localhost:8080
{
"userId" : 2,
"name" : "name",
"phoneNumber" : "010-1234-5678",
"email" : "abcd@gmail.com"
}
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
유저 ID |
|
|
true |
유저 이름 |
|
|
true |
유저 핸드폰 번호 |
|
|
유저 이메일 |
Response
HTTP/1.1 201 Created
Location: /api/v1/users/1
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 88
{
"userId" : 1,
"accessToken" : "access token",
"refreshToken" : "refresh token"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
유저 ID |
|
|
access token |
|
|
refresh token |
1.6. 유저 탈퇴
Request
DELETE /api/v1/users HTTP/1.1
Authorization: Access Token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=R8pQQ8wSb3B9748dQNCyEuDQKXE9mScd-4EMY4rJ1ALYbpXYdf0zdvx0XhZQi-4qdf2GK9PpBEkKqUEwneQ1UOyr52G6D6bv
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Response Body
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
1.7. 유저 프로필 페이지 확인
Request
GET /api/v1/me/profile HTTP/1.1
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
access token |
false |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 134
{
"username" : "멤버명",
"phoneNumber" : "010-1234-5678",
"email" : "www.image.com",
"profileImageUrl" : "abcd@gmail.com"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
유저 이름 |
|
|
유저 전화번호 |
|
|
유저 이메일 |
|
|
유저 프로필 이미지 URL |
1.8. 유저 필수 정보 변경 (닉네임, 휴대폰 번호)
Request
PUT /api/v1/me/profile?_csrf=dNj6c-bXO-dukwj5EoRwSVIkoWQ-GUcfWmOcbWGNx71-5Nh5ROqfQtK1X9RDoW7IdKlEfzZAjAVdeCUyYwH5CVHu8o9L3bpJ HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Content-Length: 92
Host: localhost:8080
{
"name" : "멤버명1",
"phoneNumber" : "010-1234-6789",
"email" : "abcd@gmail.com"
}
Request Header
Name | Description | Optional |
---|---|---|
|
access token |
false |
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
유저 이름 |
|
|
true |
유저 전화번호 |
|
|
유저 이메일 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 88
{
"userId" : 1,
"accessToken" : "access token",
"refreshToken" : "refresh token"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
유저 ID |
|
|
액세스 토큰 |
|
|
리프레시 토큰 |
1.9. 유저 프로필 이미지 변경
Request
PATCH /api/v1/me/profile HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
|
multipart/form-data |
false |
Request Part
Part | Description | Optional |
---|---|---|
|
유저 프로필 이미지 |
false |
Response Body
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
1.10. 유저 프로필 이미지 제거(기본 이미지로 변경)
Request
DELETE /api/v1/me/profile/images HTTP/1.1
Authorization: Access Token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=7TCd_ZXNpxm544PL77HmkYFxFk0diaN1Ic-NAh8pRlS_X0v5i1Ovn6CokyGU2rP73ZzS9ONFOy8uuMJYQ_brNSlNJDWHa3ia
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Response Body
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
1.11. 유저 이메일 수신 상태 변경
Request
PATCH /api/v1/me/profile/email/consent?_csrf=w6HYCscjNs9Oq_23_CrTS_-ZXw_HF7oma9Y32N6ZDTKi65Kd-pnhOvQVVf9jmJ7SmAfnLs2tcm2jJ4oLU7BV4OqgOFSQ06Ct HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token
Content-Length: 27
Host: localhost:8080
{
"emailConsent" : true
}
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Request Fields
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
이메일 수신 동의 여부 |
Response Body
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
1.12. 유저가 북마크한 행사 확인
Request
GET /api/v1/me/events/bookmark?page=1&size=10&sort=id%2Casc HTTP/1.1
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Query Parameter
Name | Description | Optional |
---|---|---|
|
페이지 |
true |
|
페이지 내 개수 |
true |
|
정렬 방법(ex. id,desc) |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 795
{
"data" : [ {
"id" : 1,
"title" : "제목",
"location" : "위치",
"clubName" : "클럽1 이름",
"posterImageUrl" : "null포스터 파일명",
"startDate" : "2023-09-21",
"bookmark" : true
}, {
"id" : 2,
"title" : "제목",
"location" : "위치",
"clubName" : "클럽1 이름",
"posterImageUrl" : "null포스터 파일명",
"startDate" : "2023-09-21",
"bookmark" : true
}, {
"id" : 3,
"title" : "제목",
"location" : "위치",
"clubName" : "클럽1 이름",
"posterImageUrl" : "null포스터 파일명",
"startDate" : "2023-09-21",
"bookmark" : true
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
페이지 내 이벤트 정보 |
|
|
이벤트 아이디 |
|
|
이벤트 제목 |
|
|
이벤트 위치 |
|
|
이벤트 주최자 |
|
|
포스터 URL |
|
|
이벤트 시작일 |
|
|
북마크 상태 |
|
|
페이지 정보 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 내 개수 |
|
|
총 페이지 개수 |
|
|
총 이벤트 개수 |
1.13. 행사 북마크 상태 변경
Request
PATCH /api/v1/me/events/1?_csrf=grVf2-dtCxs15o2IRH0SPFnKV9Qs90NqmLkyzagKzAhvzAqE4Y0-7tFbaH4Y0bS_J1AmCG_6erUcw3tH_IoH-p84-z9f9DK1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token
Content-Length: 23
Host: localhost:8080
{
"bookmark" : true
}
Path Parameter
Parameter | Description |
---|---|
|
행사 아이디 |
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
북마크 상태 |
Response Body
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
1.14. 유저의 행사 북마크 여부 확인
Request
GET /api/v1/me/events/1 HTTP/1.1
Authorization: Access Token
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
이벤트 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 4
true
Response Body
Unresolved directive in user/bookmark-api.adoc - include::../../../build/generated-snippets/user/isBookmarked/response-body.adoc[] :sectnums:
2. 클럽
2.1. 클럽 개설
Request
POST /api/v1/clubs HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: token
Accept: application/json
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json
{"name":"연사모","info":"연어를 사랑하는 모임"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=logoImage; filename=logoImage.jpg
Content-Type: image/jpeg
<<jpeg data>>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
클럽 생성 요청 DTO |
false |
|
클럽 썸네일 이미지 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
클럽 이름 |
|
|
클럽 소개 |
Response
HTTP/1.1 201 Created
Location: /api/v1/clubs/1
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Response Header
Name | Description |
---|---|
|
생성된 클럽의 URI |
2.2. 클럽 삭제
Request
DELETE /api/v1/clubs/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
클럽 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
2.3. 클럽 행사 조회
Request
GET /api/v1/clubs/1/events?page=1&size=3&sort=id%2Casc HTTP/1.1
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
Query Parameter
Name | Description | Optional |
---|---|---|
|
페이지 |
true |
|
페이지 내 개수 |
true |
|
정렬 방법(ex. id,desc) |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1783
{
"data" : [ {
"id" : 1,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"openStatus" : "ALL",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
},
"managerInfo" : {
"name" : "박씨",
"profileImageUrl" : "abcd@gmail.com"
}
}, {
"id" : 2,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"openStatus" : "ALL",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
},
"managerInfo" : {
"name" : "박씨",
"profileImageUrl" : "abcd@gmail.com"
}
}, {
"id" : 3,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"openStatus" : "CLUB",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
},
"managerInfo" : {
"name" : "박씨",
"profileImageUrl" : "abcd@gmail.com"
}
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
페이지 내 행사 정보 |
|
|
행사 id |
|
|
행사 정보 |
|
|
행사 제목 |
|
|
포스터 URL |
|
|
행사 위치 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시간 |
|
|
행사 종료 날짜 |
|
|
행사 종료 시간 |
|
|
행사 공개 여부 |
|
|
행사 종료 여부 |
|
|
클럽 정보 |
|
|
클럽 명 |
|
|
클럽 이미지 Url |
|
|
담당자 정보 |
|
|
담당자 이름 |
|
|
담당자 이미지 Url |
|
|
페이지 정보 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 내 개수 |
|
|
총 페이지 개수 |
|
|
총 행사 개수 |
2.4. 클럽 멤버 조회
Request
GET /api/v1/clubs/1/members HTTP/1.1
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 204
[ {
"id" : 1,
"name" : "멤버명",
"profileImageUrl" : "www.image.com",
"role" : "MANAGER"
}, {
"id" : 2,
"name" : "멤버명",
"profileImageUrl" : "www.image.com",
"role" : "MANAGER"
} ]
Response Body
Path | Type | Description |
---|---|---|
|
|
멤버 리스트 |
|
|
멤버의 유저 id |
|
|
멤버 이름 |
|
|
멤버 이미지 Url |
|
|
멤버 권한 |
2.5. 클럽 멤버 권한 변경
Request
PATCH /api/v1/clubs/1/members/1?_csrf=uBjS_5XcVB64G3LitHb-_HwYqJrxfaNZ_QHsGZgpO5eSQ-R2gXnmz6DrMHqVeETTjVvKxRgghfjAT8V0nmWNePsaXfanIYZC HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Content-Length: 24
Host: localhost:8080
{
"role" : "MANAGER"
}
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
|
멤버의 유저 id |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
2.6. 클럽 멤버 추방
Request
DELETE /api/v1/clubs/1/members/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
|
멤버의 유저 id |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
2.7. 클럽 조회
Request
GET /api/v1/clubs/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저의 액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 182
{
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL",
"info" : "클럽 정보",
"memberCount" : 0,
"coverImageUrl" : "null클럽 커버 이미지 URL"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
클럽 이름 |
|
|
클럽 이미지 Url |
|
|
클럽 소개 |
|
|
클럽 멤버 수 |
|
|
클럽 커버 이미지 Url |
2.8. 클럽 수정
Request
PATCH /api/v1/clubs/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: token
Accept: application/json
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
클럽 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
클럽 수정 요청 DTO |
true |
|
새로운 클럽 로고 이미지 |
true |
|
새로운 클럽 배경 이미지 |
true |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
클럽 이름 |
|
|
클럽 소개 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
2.9. 클럽 공지사항 작성
Request
POST /api/v1/clubs/1/notices?_csrf=T_bJ08qjDwrDPeIhHIPru3ydiEYi_g95FABawaVCdcTk4-cWf5f_5fqXbTLuWNQQfq7f2BqppSdAmzdULTZi98BxEKfd0dAk HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Content-Length: 25
Host: localhost:8080
{
"notice" : "notice"
}
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
2.10. 클럽 공지사항 조회
Request
GET /api/v1/clubs/1/notices?_csrf=u9hJ8_t4oDfYyiV0Cksj3bYXFtQMQBZjAuRLK3n4ZQoLhR7yjb0oxsoZmFP1rkRGaWYXvIQiO7U1JSJOYIZ-T0nIVDs_5H-U HTTP/1.1
Authorization: access token
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 114
{
"notices" : [ {
"id" : 1,
"notice" : "notice 1"
}, {
"id" : 2,
"notice" : "notice 2"
} ]
}
Response Body
Path | Type | Description |
---|---|---|
|
|
공지 사항 리스트 |
|
|
공지 사항 항목 ID |
|
|
공지 사항 내용 |
2.11. 클럽 공지사항 수정
Request
PATCH /api/v1/clubs/1/notices/1?_csrf=DQhR9DHdI9i_IK2hMdjX6v_AizgSe7xRPa6qO1hD9M-gsCiLPG5lkQK4RrqSRcjDCPXjiM_5pgAgTY18BZmTXTx6kPaR0ky6 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Content-Length: 41
Host: localhost:8080
{
"notice" : "새로운 공지사항"
}
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
|
공지사항 아이디 |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
새로운 공지사항 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
2.12. 클럽 공지사항 삭제
Request
DELETE /api/v1/clubs/1/notices/1 HTTP/1.1
Authorization: access token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=XactjGjBNR1knQEMGabZVy6y40nkSxJ3cAT6gdwBdjd5CqIxb8IVuFz1VHtJ_jM5KYvtb0rXznDVfnZaQjLCsL1kEARKb5FU
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
|
공지사항 아이디 |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
2.13. 클럽 유저 권한 조회
Request
GET /api/v1/clubs/1/users HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
Access Token |
false |
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 24
{
"role" : "MANAGER"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
유저 권한 |
2.14. 클럽 탈퇴
Request
DELETE /api/v1/clubs/1/users HTTP/1.1
Authorization: access token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=HiwdQRkZ82A1QAlWOrBVt5vm89-O9xAxOPWSLWVn9w34B6tWKkl_In8vwwIYcD43DZ1hhq6C3ue5w3McCpPwFVZXljnKZJww
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
클럽 아이디 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
3. 클럽 초대 링크
3.1. 클럽 초대 링크 생성
Request
POST /api/v1/clubs/1/invite HTTP/1.1
Authorization: token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=qcb2hJ3Ir5JxTfR6pM8KI-wrAy1EriMqMdRkeYXmBzYMRgmoy6LB5auqlqdcLpFMleI-EdkbLhUhzxIHVbUFSbeFY1U7cz-e
Path Parameter
Parameter | Description |
---|---|
|
클럽 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 201 Created
Location: /api/v1/clubs/1/invite/650d2d91-a8cf-45e7-8a43-a0c798173ecb
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Response Header
Name | Description |
---|---|
|
클럽 초대 링크 |
3.2. 클럽 초대 링크 조회
Request
GET /api/v1/clubs/1/invite HTTP/1.1
Authorization: Access Token
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
클럽 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 126
{
"inviteLink" : "https://space-club.site/api/v1/clubs/invite/7e211fdc-04db-42a1-af0f-4ec01df677c7",
"isExpired" : false
}
Response Body
Path | Type | Description |
---|---|---|
|
|
유저 초대 링크 |
|
|
초대 링크 만료 여부 |
3.3. 초대 링크를 통한 클럽 가입
Request
POST /api/v1/clubs/invites/2dc6292c-a7eb-45d7-a614-d3f3c18e5edb HTTP/1.1
Authorization: token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=30erydCqwL9VyEM62keypV-E8LR7ic7Uouz8REVlON1T7DkHvnPK_uXJ9Nl4riYKuWqGlT293dYY7Pj5x9zIIXFVXuQwiV0x
Path Parameter
Parameter | Description |
---|---|
|
클럽 초대 링크 식별자 |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 18
{
"clubId" : 0
}
Response Body
Path | Type | Description |
---|---|---|
|
|
클럽 ID |
3.4. 초대 링크를 통한 클럽 가입 전 의사 확인
Request
GET /api/v1/clubs/invites/abe218c2-09b5-4ca5-ad76-f39a77fe3446 HTTP/1.1
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
클럽 초대 링크 식별자 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 143
{
"clubId" : 1,
"name" : "클럽1 이름",
"info" : "클럽 정보",
"memberCount" : 0,
"logoImageUrl" : "null클럽 이미지 URL"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
클럽 ID |
|
|
클럽 이름 |
|
|
클럽 소개 |
|
|
클럽 구성원 수 |
|
|
클럽 로고 이미지 URL |
4. 행사
4.1. 전체 행사 조회
Request
GET /api/v1/events?category=SHOW&page=1&size=3&sort=id%2Casc HTTP/1.1
Host: localhost:8080
Query Parameter
Name | Description | Optional |
---|---|---|
|
행사 카테고리 (ex. SHOW, RECRUITMENT, PROMOTION, CLUB) |
false |
|
페이지 |
true |
|
페이지 내 개수 |
true |
|
정렬 방법(ex. id,desc) |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1407
{
"data" : [ {
"id" : 1,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
}
}, {
"id" : 2,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
}
}, {
"id" : 3,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
}
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
페이지 내 행사 정보 |
|
|
행사 id |
|
|
행사 정보 |
|
|
행사 제목 |
|
|
포스터 URL |
|
|
행사 위치 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시간 |
|
|
행사 종료 날짜 |
|
|
행사 종료 시간 |
|
|
행사 종료 여부 |
|
|
클럽 정보 |
|
|
클럽 명 |
|
|
클럽 이미지 Url |
|
|
페이지 정보 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 내 개수 |
|
|
총 페이지 개수 |
|
|
총 행사 개수 |
4.2. 행사 검색
Request
GET /api/v1/events/searches?keyword=title&page=1&size=3&sort=id%2Cdesc HTTP/1.1
Host: localhost:8080
Query Parameter
Name | Description | Optional |
---|---|---|
|
검색어 |
false |
|
페이지 |
true |
|
페이지 내 개수 |
true |
|
정렬 방법(ex. id,desc) |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1407
{
"data" : [ {
"id" : 1,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
}
}, {
"id" : 2,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
}
}, {
"id" : 3,
"eventInfo" : {
"title" : "제목",
"posterImageUrl" : "null포스터 파일명",
"location" : "위치",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"isEnded" : false
},
"clubInfo" : {
"name" : "클럽1 이름",
"logoImageUrl" : "null클럽 이미지 URL"
}
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
페이지 내 행사 정보 |
|
|
행사 id |
|
|
행사 정보 |
|
|
행사 제목 |
|
|
포스터 URL |
|
|
행사 위치 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시간 |
|
|
행사 종료 날짜 |
|
|
행사 종료 시간 |
|
|
행사 종료 여부 |
|
|
클럽 정보 |
|
|
클럽 명 |
|
|
클럽 이미지 Url |
|
|
페이지 정보 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 내 개수 |
|
|
총 페이지 개수 |
|
|
총 행사 개수 |
4.3. 행사 개설 (공연)
Request
POST /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=posterImage; filename=image.png
Content-Type: image/jpeg
<<jpeg data>>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json
{"clubId":1,"eventInfo":{"title":"행사 제목","content":"행사 내용","startDate":"2023-11-15","startTime":"14:00:00","location":"행사 장소","capacity":100},"formInfo":{"openDate":"2023-11-01","openTime":"09:00:00","closeDate":"2023-11-10","closeTime":"18:00:00"},"ticketInfo":{"cost":20000,"maxTicketCount":2},"bankInfo":{"name":"은행 명","accountNumber":"은행 계좌번호"}}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=category
Content-Type: text/plain
SHOW
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
false |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
클럽 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
행사 날짜 |
|
|
행사 시간 |
|
|
행사 장소 |
|
|
행사 정원 |
|
|
행사 비용 |
|
|
인당 예매 가능 수 |
|
|
은행 명 |
|
|
은행 계좌 번호 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 19
{
"eventId" : 1
}
Response Body
Path | Type | Description |
---|---|---|
|
|
생성된 행사 id |
4.4. 행사 개설 (홍보)
Request
POST /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=posterImage; filename=image.png
Content-Type: image/jpeg
<<jpeg data>>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json
{"clubId":1,"eventInfo":{"title":"행사 제목","content":"행사 내용","startDate":"2023-11-15","startTime":"14:00:00","location":"행사 장소","capacity":100},"formInfo":{"openDate":"2023-11-01","openTime":"09:00:00","closeDate":"2023-11-10","closeTime":"18:00:00"}}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=category
Content-Type: text/plain
PROMOTION
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
false |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
클럽 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
행사 날짜 |
|
|
행사 시간 |
|
|
행사 장소 |
|
|
행사 정원 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 19
{
"eventId" : 1
}
Response Body
Path | Type | Description |
---|---|---|
|
|
생성된 행사 id |
4.5. 행사 개설 (모집 공고)
Request
POST /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=posterImage; filename=image.png
Content-Type: image/jpeg
<<jpeg data>>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json
{"clubId":1,"eventInfo":{"title":"행사 제목","content":"행사 내용","recruitmentTarget":"모집 대상","activityArea":"활동 지역","recruitmentLimit":100},"formInfo":{"openDate":"2023-11-01","openTime":"09:00:00","closeDate":"2023-11-10","closeTime":"18:00:00"}}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=category
Content-Type: text/plain
RECRUITMENT
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
false |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
클럽 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
활동 지역 |
|
|
모집 대상 |
|
|
모집 인원 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 19
{
"eventId" : 1
}
Response Body
Path | Type | Description |
---|---|---|
|
|
생성된 행사 id |
4.6. 행사 개설 (클럽 일정)
Request
POST /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=posterImage; filename=image.png
Content-Type: image/jpeg
<<jpeg data>>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json
{"clubId":1,"eventInfo":{"title":"행사 제목","content":"행사 내용","startDate":"2023-11-15","startTime":"14:00:00","endDate":"2023-11-16","endTime":"18:00:00","dues":5000,"location":"행사 장소","capacity":100},"formInfo":{"openDate":"2023-11-01","openTime":"09:00:00","closeDate":"2023-11-10","closeTime":"18:00:00"}}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=category
Content-Type: text/plain
CLUB
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
true |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
클럽 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시간 |
|
|
행사 종료 날짜 |
|
|
행사 종료 시간 |
|
|
행사 장소 |
|
|
행사 정원 |
|
|
행사 회비 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 19
{
"eventId" : 1
}
Response Body
Path | Type | Description |
---|---|---|
|
|
생성된 행사 id |
4.7. 행사 수정 (공연)
Request
PATCH /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
true |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
행사 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
행사 날짜 |
|
|
행사 시간 |
|
|
행사 장소 |
|
|
행사 정원 |
|
|
행사 비용 |
|
|
인당 예매 가능 수 |
|
|
은행 명 |
|
|
은행 계좌 번호 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
4.8. 행사 수정 (홍보)
Request
PATCH /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
true |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
행사 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
행사 날짜 |
|
|
행사 시간 |
|
|
행사 장소 |
|
|
행사 정원 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
4.9. 행사 수정 (모집 공고)
Request
PATCH /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
true |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
행사 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
활동 지역 |
|
|
모집 대상 |
|
|
모집 인원 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
4.10. 행사 수정 (클럽 일정)
Request
PATCH /api/v1/events HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Multipart Form Data
Part | Description | Optional |
---|---|---|
|
포스터 사진 |
true |
|
행사 생성 관련 정보 |
false |
|
행사 카테고리 |
false |
Request Form Data
Path | Type | Description |
---|---|---|
|
|
행사 id |
|
|
행사 정보 |
|
|
행사 내용 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시간 |
|
|
행사 종료 날짜 |
|
|
행사 종료 시간 |
|
|
행사 장소 |
|
|
행사 정원 |
|
|
행사 회비 |
|
|
폼 오픈 날짜 |
|
|
폼 오픈 시간 |
|
|
폼 마감 날짜 |
|
|
폼 마감 시간 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
4.11. 행사 상세 조회 (공연)
Request
GET /api/v1/events/1 HTTP/1.1
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
행사 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 774
{
"id" : 2,
"category" : "SHOW",
"hasForm" : false,
"hasAlreadyApplied" : false,
"eventInfo" : {
"title" : "제목",
"content" : "내용",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"isEnded" : false,
"location" : "위치",
"applicants" : 0,
"capacity" : 100,
"posterImageUrl" : "null포스터 파일명"
},
"formInfo" : {
"openDate" : "2023-10-24",
"openTime" : "23:41:30",
"closeDate" : "2023-10-24",
"closeTime" : "23:41:30",
"isAbleToApply" : false
},
"ticketInfo" : {
"cost" : 3000,
"maxTicketCount" : 4
},
"bankInfo" : {
"bankName" : "은행명",
"bankAccountNumber" : "계좌번호"
},
"clubInfo" : {
"clubId" : 1,
"clubName" : "클럽1 이름"
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
행사 ID |
|
|
이벤트 종류 |
|
|
폼 존재 여부 |
|
|
폼 신청 여부 |
|
|
행사 정보 |
|
|
행사 제목 |
|
|
행사 내용 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시각 |
|
|
행사 종료 여부 |
|
|
행사 위치 |
|
|
신청 인원 |
|
|
신청 정원 |
|
|
행사 포스터 URL |
|
|
티켓 정보 |
|
|
참가 비용 |
|
|
인당 최대 예매 가능 수 |
|
|
폼 정보 |
|
|
행사 참여 신청 시작 날짜 |
|
|
행사 참여 신청 시작 시간 |
|
|
행사 참여 신청 종료 날짜 |
|
|
행사 참여 신청 종료 시간 |
|
|
참여 신청 가능 여부 |
|
|
은행 정보 |
|
|
은행 명 |
|
|
계좌 번호 |
|
|
클럽 ID |
|
|
클럽 이름 |
4.12. 행사 상세 조회 (홍보)
Request
GET /api/v1/events/1 HTTP/1.1
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
행사 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 618
{
"id" : 4,
"category" : "PROMOTION",
"hasForm" : false,
"hasAlreadyApplied" : false,
"eventInfo" : {
"title" : "제목",
"content" : "내용",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"isEnded" : false,
"location" : "위치",
"applicants" : 0,
"capacity" : 100,
"posterImageUrl" : "null포스터 파일명"
},
"formInfo" : {
"openDate" : "2023-10-24",
"openTime" : "23:41:30",
"closeDate" : "2023-10-24",
"closeTime" : "23:41:30",
"isAbleToApply" : false
},
"clubInfo" : {
"clubId" : 1,
"clubName" : "클럽1 이름"
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
행사 ID |
|
|
이벤트 종류 |
|
|
폼 존재 여부 |
|
|
폼 신청 여부 |
|
|
행사 정보 |
|
|
행사 제목 |
|
|
행사 내용 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시각 |
|
|
행사 종료 여부 |
|
|
행사 위치 |
|
|
신청 인원 |
|
|
신청 정원 |
|
|
행사 포스터 URL |
|
|
폼 정보 |
|
|
행사 참여 신청 시작 날짜 |
|
|
행사 참여 신청 시작 시간 |
|
|
행사 참여 신청 종료 날짜 |
|
|
행사 참여 신청 종료 시간 |
|
|
참여 신청 가능 여부 |
|
|
클럽 ID |
|
|
클럽 이름 |
4.13. 행사 상세 조회 (모집 공고)
Request
GET /api/v1/events/1 HTTP/1.1
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
행사 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 717
{
"id" : 5,
"category" : "RECRUITMENT",
"hasForm" : false,
"hasAlreadyApplied" : false,
"eventInfo" : {
"title" : "제목",
"content" : "내용",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"isEnded" : false,
"applicants" : 0,
"posterImageUrl" : "null포스터 파일명",
"recruitmentTarget" : "연어를 좋아하는 사람 누구나",
"recruitmentLimit" : 200,
"activityArea" : "홍대입구역 근처"
},
"formInfo" : {
"openDate" : "2023-10-24",
"openTime" : "23:41:30",
"closeDate" : "2023-10-24",
"closeTime" : "23:41:30",
"isAbleToApply" : false
},
"clubInfo" : {
"clubId" : 1,
"clubName" : "클럽1 이름"
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
행사 ID |
|
|
이벤트 종류 |
|
|
폼 존재 여부 |
|
|
폼 신청 여부 |
|
|
행사 정보 |
|
|
행사 제목 |
|
|
행사 내용 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시각 |
|
|
행사 종료 여부 |
|
|
신청 인원 |
|
|
행사 포스터 URL |
|
|
활동 영역 |
|
|
모집 대상 |
|
|
모집 인원 |
|
|
폼 정보 |
|
|
행사 참여 신청 시작 날짜 |
|
|
행사 참여 신청 시작 시간 |
|
|
행사 참여 신청 종료 날짜 |
|
|
행사 참여 신청 종료 시간 |
|
|
참여 신청 가능 여부 |
|
|
클럽 ID |
|
|
클럽 이름 |
4.14. 행사 상세 조회 (클럽 일정)
Request
GET /api/v1/events/1 HTTP/1.1
Authorization: Access Token
Host: localhost:8080
Path Parameter
Parameter | Description |
---|---|
|
행사 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
유저 액세스 토큰 |
false |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 690
{
"id" : 3,
"category" : "CLUB",
"hasForm" : false,
"hasAlreadyApplied" : false,
"eventInfo" : {
"title" : "제목",
"content" : "내용",
"startDate" : "2023-09-21",
"startTime" : "12:30:30",
"endDate" : "2024-09-21",
"endTime" : "12:30:30",
"isEnded" : false,
"dues" : 5000,
"location" : "위치",
"applicants" : 0,
"capacity" : 100,
"posterImageUrl" : "null포스터 파일명"
},
"formInfo" : {
"openDate" : "2023-10-24",
"openTime" : "23:41:30",
"closeDate" : "2023-10-24",
"closeTime" : "23:41:30",
"isAbleToApply" : false
},
"clubInfo" : {
"clubId" : 1,
"clubName" : "클럽1 이름"
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
행사 ID |
|
|
이벤트 종류 |
|
|
폼 존재 여부 |
|
|
폼 신청 여부 |
|
|
행사 정보 |
|
|
행사 제목 |
|
|
행사 제목 |
|
|
행사 시작 날짜 |
|
|
행사 시작 시각 |
|
|
행사 종료 날짜 |
|
|
행사 종료 시각 |
|
|
행사 종료 여부 |
|
|
행사 참가 회비 |
|
|
행사 위치 |
|
|
신청 인원 |
|
|
모집 정원 |
|
|
행사 포스터 URL |
|
|
폼 정보 |
|
|
행사 참여 신청 시작 날짜 |
|
|
행사 참여 신청 시작 시간 |
|
|
행사 참여 신청 종료 날짜 |
|
|
행사 참여 신청 종료 시간 |
|
|
참여 신청 가능 여부 |
|
|
클럽 ID |
|
|
클럽 이름 |
4.15. 행사 삭제
Request
DELETE /api/v1/events/1 HTTP/1.1
Authorization: Access Token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=lCudBBXNQxb7gHBXnaeNPaiZsWiBVHRTj-ao2sq9QA_Qk4w9rBz_YSz1eiDWs0du-Yq5BZ-qnFG4Z0F-6dPKvqmOIzmyobpf
Path Parameter
Parameter | Description |
---|---|
|
행사 ID |
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
4.16. 행사 배너
Request
GET /api/v1/events/banner?_csrf=F2wb9x3EkXHAFpdDiChGoTs00R6Sdqi3YwN6MR_NiJP3dHs9L1p-w3-nqRLtc6NwvAVyll1R_H-kR5GaWmdCBS70uqTFRB1b HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 773
[ {
"clubInfo" : {
"coverImageUrl" : "null클럽 커버 이미지 URL",
"name" : "클럽1 이름"
},
"eventInfo" : {
"eventId" : 1,
"title" : "제목",
"formCloseDateTime" : "2023-10-24T23:41:30",
"eventCategory" : "SHOW"
}
}, {
"clubInfo" : {
"coverImageUrl" : "null클럽 커버 이미지 URL",
"name" : "클럽1 이름"
},
"eventInfo" : {
"eventId" : 2,
"title" : "제목",
"formCloseDateTime" : "2023-10-24T23:41:30",
"eventCategory" : "SHOW"
}
}, {
"clubInfo" : {
"coverImageUrl" : "null클럽 커버 이미지 URL",
"name" : "클럽1 이름"
},
"eventInfo" : {
"eventId" : 3,
"title" : "제목",
"formCloseDateTime" : "2023-10-24T23:41:30",
"eventCategory" : "CLUB"
}
} ]
Response Body
Path | Type | Description |
---|---|---|
|
|
클럽 및 이벤트 정보 목록 |
|
|
클럽 정보 |
|
|
클럽 이미지 url |
|
|
클럽 이름 |
|
|
이벤트 정보 |
|
|
행사 id |
|
|
행사 제목 |
|
|
폼 마감 시간 |
|
|
행사 카테고리 |
4.17. 행사 신청
Request
POST /api/v1/events/participate?_csrf=8hVc47qhXvUEkxlqtqRlnHO03aOX4psvV7-5CLPJNwwx_y4oyiY51IKUPMMp9yBd0IlRrUCD8MKihv4CYNmPOtWsU2pVnBsf HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token
Content-Length: 167
Host: localhost:8080
{
"eventId" : 1,
"ticketCount" : 5,
"forms" : [ {
"optionId" : 1,
"content" : "박씨"
}, {
"optionId" : 2,
"content" : "010-1111-2222"
} ]
}
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
행사 id |
|
|
true |
행사 예매 매수 |
|
|
true |
폼 리스트 |
|
|
true |
폼 항목 id |
|
|
true |
폼 항목 답변 내용 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
4.18. 행사 신청 취소
Request
DELETE /api/v1/events/1/participate HTTP/1.1
Authorization: Access Token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=irfs-OZzvEWo6Z7IJgTNvnodplyLtVpVa6Jhss2l6Oc_d-CAuoKNntBHjSeF2f2tRCn5jEx-iz2-jTt4W5ADh_qc3t5cFdmy
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
행사 id |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 40
{
"participationStatus" : "CANCELED"
}
Response Body
Path | Type | Description |
---|---|---|
|
|
행사 신청 상태(ex. CANCELED, CANCEL_REQUESTED) |
5. 행사 폼
5.1. 행사 폼 양식 설정
Request
POST /api/v1/events/forms?_csrf=8zrDhvd8YMWS1urFcsw7mPlTu40MlxQ2akWYvsJElh4g6x0cxg_6sMVPBvy_sI_3QOEPq8k1luxtryYbUnGsjvpzpHsV3H94 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token
Content-Length: 278
Host: localhost:8080
{
"eventId" : 1,
"description" : "행사에 대한 폼 양식입니다.",
"managed" : true,
"options" : [ {
"title" : "이름",
"type" : "TEXT"
}, {
"title" : "연락처",
"type" : "NUMBER"
}, {
"title" : "인원 수",
"type" : "TEXT"
} ]
}
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
행사 id |
|
|
true |
폼 설명 |
|
|
true |
관리 모드 여부 |
|
|
true |
감 |
|
|
true |
폼 항목명 |
|
|
true |
폼 항목 타입(TEXT, SELECT, RADIO, NUMBER) |
Response
HTTP/1.1 201 Created
Location: /api/v1/events/1
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Response Body
Name | Description |
---|---|
|
생성된 폼의 행사 조회 URI |
5.2. 행사 폼 양식 조회
Request
GET /api/v1/events/1/forms HTTP/1.1
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
행사 id |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 271
{
"event" : {
"title" : "행사 제목"
},
"form" : {
"description" : "폼 정보",
"options" : [ {
"id" : 1,
"title" : "이름",
"type" : "TEXT"
}, {
"id" : 2,
"title" : "연락처",
"type" : "TEXT"
} ]
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
행사 정보 |
|
|
행사 제목 |
|
|
폼 정보 |
|
|
폼 설명 |
|
|
폼 항목 리스트 |
|
|
폼 항목 id |
|
|
폼 항목명 |
|
|
폼 항목 타입(TEXT, SELECT, RADIO, NUMBER) |
5.3. 행사의 신청된 폼 조회하기
Request
GET /api/v1/events/1/forms/submit?page=1&size=3&sort=id%2Cdesc HTTP/1.1
Authorization: Access Token
Host: localhost:8080
Request Header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
행사 id |
Query Parameter
Name | Description | Optional |
---|---|---|
|
페이지 |
true |
|
페이지 내 개수 |
true |
|
정렬 방법(ex. id,desc) |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 579
{
"formInfo" : {
"count" : 1,
"optionTitles" : [ "이름", "연락처" ],
"managed" : true
},
"userForms" : [ {
"userId" : 1,
"options" : [ {
"title" : "이름",
"content" : "박가네"
}, {
"title" : "연락처",
"content" : "010-1111-2222"
} ],
"participation" : {
"status" : "PENDING",
"dateTime" : "2024-05-21 07:46:44"
},
"ticketCount" : 5
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 1,
"totalPages" : 1,
"totalElements" : 1
}
}
Response Body
Path | Type | Description |
---|---|---|
|
|
폼 정보 |
|
|
폼 개수 |
|
|
폼 옵션명 리스트 |
|
|
관리 모드 여부 |
|
|
유저 폼 리스트 |
|
|
폼의 유저 id |
|
|
폼 옵션 리스트 |
|
|
폼 옵션명 |
|
|
폼 옵션 내용 |
|
|
신청 정보 |
|
|
신청 상태 |
|
|
신청 날짜 및 시각 |
|
|
신청한 티켓 수 |
|
|
페이지 정보 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 내 개수 |
|
|
총 페이지 개수 |
|
|
총 행사 개수 |
5.4. 행사의 신청 상태 변경
Request
PATCH /api/v1/events/1/forms/submit?_csrf=6ojj3murA67zCe93_7-pMeTi8FbrYghP99EefSe_qf2S6lSj3brSuFnPNp7ePttCnpKdCdDQ3TeJBm1ilbctHxDcnZnz2mWa HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Access Token
Content-Length: 61
Host: localhost:8080
{
"formUserId" : 1,
"participationStatus" : "CONFIRMED"
}
Request Header
Name | Description | Optional |
---|---|---|
|
유저의 액세스 토큰 |
false |
Path Parameter
Parameter | Description |
---|---|
|
행사 id |
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
행사를 신청한 유저 id |
|
|
true |
행사 신청 상태 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
6. 게시판
6.1. 게시글 페이징 조회
Request
GET /api/v1/boards/posts/1?page=0&size=10&sort=id%2Casc HTTP/1.1
Authorization: access token
Host: localhost:8080
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
클럽 아이디 |
Query Parameters
Name | Description | Optional |
---|---|---|
|
페이지 |
true |
|
페이지 내 개수, default 10 |
true |
|
정렬 방법(ex. id,desc), default id,desc |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1066
{
"data" : [ {
"postId" : 1,
"title" : "title1",
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : "spaceclub.site/postImageUrl1",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
}, {
"postId" : 2,
"title" : "title2",
"content" : "content2",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : null,
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
}, {
"postId" : 3,
"title" : "title3",
"content" : "content3",
"authorId" : 2,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : "spaceclub.site/postImageUrl3",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Response Body
{
"data" : [ {
"postId" : 1,
"title" : "title1",
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : "spaceclub.site/postImageUrl1",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
}, {
"postId" : 2,
"title" : "title2",
"content" : "content2",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : null,
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
}, {
"postId" : 3,
"title" : "title3",
"content" : "content3",
"authorId" : 2,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : "spaceclub.site/postImageUrl3",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Path | Type | Description |
---|---|---|
|
|
페이지 내 게시글 정보 |
|
|
게시글 아이디 |
|
|
게시글 제목 |
|
|
게시글 내용 |
|
|
게시글 작성자 아이디 |
|
|
게시글 작성자 이름 |
|
|
게시글 작성자 프로필 이미지 URL |
|
|
게시글 이미지 URL |
|
|
게시글 작성일 |
|
|
게시글 마지막 수정일 |
|
|
페이지 정보 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 내 개수 |
|
|
총 페이지 개수 |
|
|
총 이벤트 개수 |
6.2. 게시글 단건 조회
Request
GET /api/v1/boards/posts/1/1 HTTP/1.1
Authorization: access token
Host: localhost:8080
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
클럽 아이디 |
|
게시글 아이디 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 288
{
"postId" : 1,
"title" : "title1",
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : "spaceclub.site/postImageUrl1",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
}
Response Body
{
"postId" : 1,
"title" : "title1",
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"postImageUrl" : "spaceclub.site/postImageUrl1",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00"
}
Path | Type | Description |
---|---|---|
|
|
게시글 아이디 |
|
|
게시글 제목 |
|
|
게시글 내용 |
|
|
게시글 작성자 아이디 |
|
|
게시글 작성자 이름 |
|
|
게시글 작성자 프로필 이미지 URL |
|
|
게시글 이미지 URL |
|
|
게시글 작성일 |
|
|
게시글 마지막 수정일 |
6.3. 게시글 등록 (파일 첨부)
Request
POST /api/v1/boards/posts/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Accept: application/json
Authorization: access token
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png
content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=postRequest
Content-Type: application/json
{"title":"title1","content":"content1"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
클럽 아이디 |
Request Part
Part | Description | Optional |
---|---|---|
|
게시글 제목 및 내용 |
false |
|
첨부 이미지 |
true |
Request Part (postRequest)
Path | Type | Description |
---|---|---|
|
|
게시글 제목 |
|
|
게시글 내용 |
Response
HTTP/1.1 201 Created
Location: /api/v1/boards/posts/1/1
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
6.4. 게시글 등록 (파일 미첨부)
Request
POST /api/v1/boards/posts/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Accept: application/json
Authorization: access token
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=postRequest
Content-Type: application/json
{"title":"title1","content":"content1"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
클럽 아이디 |
Request Part
Part | Description | Optional |
---|---|---|
|
게시글 제목 및 내용 |
false |
Request Part (postRequest)
Path | Type | Description |
---|---|---|
|
|
게시글 제목 |
|
|
게시글 내용 |
Response
HTTP/1.1 201 Created
Location: /api/v1/boards/posts/1/1
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
6.5. 게시글 수정
Request
PUT /api/v1/boards/posts/1 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Accept: application/json
Authorization: access token
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png
content
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=postRequest
Content-Type: application/json
{"title":"title1","content":"content1","doesPostImageExist":true}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
게시글 아이디 |
Request Part
Part | Description | Optional |
---|---|---|
|
게시글 제목 및 내용 |
false |
|
첨부 이미지 |
true |
Request Part (postRequest)
Path | Type | Description |
---|---|---|
|
|
게시글 제목 |
|
|
게시글 내용 |
|
|
게시글 이미지 존재 여부 |
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
6.6. 게시글 삭제
Request
DELETE /api/v1/boards/posts/1 HTTP/1.1
Authorization: access token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=jP54NcntQOZMWDbkJ76f0guR7FLOGCZGMDx9n0Unn4ePnmBVtc5BDP6OJYRhPAeAQpOr5D6iwTP7fEVrCVoc_CdEqrLqrQNk
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
게시글 아이디 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
6.7. 댓글 페이징 조회
Request
GET /api/v1/boards/posts/1/comments?page=0&size=10&sort=id%2Casc HTTP/1.1
Authorization: access token
Host: localhost:8080
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
게시글 아이디 |
Query Parameters
Name | Description | Optional |
---|---|---|
|
페이지 |
true |
|
페이지 내 개수, default 10 |
true |
|
정렬 방법(ex. id,desc), default createdAt,desc |
true |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 944
{
"data" : [ {
"commentId" : 1,
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : false
}, {
"commentId" : 2,
"content" : "content2",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : false
}, {
"commentId" : 3,
"content" : "content3",
"authorId" : 2,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : true
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Response Body
{
"data" : [ {
"commentId" : 1,
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : false
}, {
"commentId" : 2,
"content" : "content2",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : false
}, {
"commentId" : 3,
"content" : "content3",
"authorId" : 2,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : true
} ],
"pageData" : {
"first" : true,
"last" : true,
"pageNumber" : 0,
"size" : 3,
"totalPages" : 1,
"totalElements" : 3
}
}
Path | Type | Description |
---|---|---|
|
|
페이지 내 댓글 정보 |
|
|
댓글 아이디 |
|
|
댓글 내용 |
|
|
댓글 작성자 아이디 |
|
|
댓글 작성자 이름 |
|
|
댓글 작성자 프로필 이미지 URL |
|
|
댓글 작성일 |
|
|
댓글 마지막 수정일 |
|
|
비밀 댓글 여부 |
|
|
페이지 정보 |
|
|
총 페이지 |
|
|
첫 페이지 여부 |
|
|
마지막 페이지 여부 |
|
|
현재 페이지 번호 |
|
|
페이지 size (default 10) |
|
|
페이지 내 댓글 개수 |
6.8. 댓글 단건 조회
Request
GET /api/v1/boards/posts/comments/1 HTTP/1.1
Authorization: access token
Host: localhost:8080
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
댓글 아이디 |
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 241
{
"commentId" : 1,
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : false
}
Response Body
{
"commentId" : 1,
"content" : "content1",
"authorId" : 1,
"author" : "authorName",
"authorImageUrl" : "authorImageUrl",
"createdDate" : "2024-01-01T00:00:00",
"lastModifiedDate" : "2024-01-01T00:00:00",
"isPrivate" : false
}
Path | Type | Description |
---|---|---|
|
|
댓글 아이디 |
|
|
댓글 내용 |
|
|
댓글 작성자 아이디 |
|
|
댓글 작성자 이름 |
|
|
댓글 작성자 프로필 이미지 URL |
|
|
댓글 작성일 |
|
|
댓글 마지막 수정일 |
|
|
비밀 댓글 여부 |
6.9. 댓글 생성
Request
POST /api/v1/boards/posts/1/comments?_csrf=korMnOsF64G9bia4K0xMLN_GmgLjpiWuBNVuDrOfGkEFfjhYpbz4-d9g3OKQWRfZHmF4He6nt2PQkhODPbYKOIOuLnYwRw5t HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Content-Length: 51
Host: localhost:8080
{
"content" : "content1",
"isPrivate" : false
}
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Request Fields
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
댓글 내용 |
|
|
true |
비밀 댓글 여부 |
Path Parameters
Parameter | Description |
---|---|
|
게시글 아이디 |
Response
HTTP/1.1 201 Created
Location: /api/v1/boards/posts/comments/1
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
6.10. 댓글 수정
Request
PUT /api/v1/boards/posts/comments/1?_csrf=8JjE0CIf3_wHn_ggBclqc1qw7X7c7i9GGGqe0EvAZDIuZ5cfkqzx5ht555kq-8oYN-ReQ2iCwEfuihxrLV_84X_3V1MaBPQr HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access token
Content-Length: 51
Host: localhost:8080
{
"content" : "content1",
"isPrivate" : false
}
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Request Fields
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
댓글 내용 |
|
|
true |
비밀 댓글 여부 |
Path Parameters
Parameter | Description |
---|---|
|
댓글 아이디 |
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
6.11. 댓글 삭제
Request
DELETE /api/v1/boards/posts/comments/1 HTTP/1.1
Authorization: access token
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=1AQzNpVldktXCvgr_tlmvbWw7pXT6Vl1voCRJyoDEJTEOqJTtzxQUqdUFXx6M8hJxvRS3tfSw_TkjT9Y27L0Qx47c_HwApAy
Request header
Name | Description | Optional |
---|---|---|
|
액세스 토큰 |
false |
Path Parameters
Parameter | Description |
---|---|
|
댓글 아이디 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
7. Notification
7.1. 실패한 메일 재전송
Request
POST /api/v1/mails/retry-all-failed-emails HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: localhost:8080
Content-Length: 102
_csrf=XqERGEN4uxsk1QKzf0EpgcB5OnM3uGZbry8TOhv5lopgaRxRaZIoKnEdiCoJt2SGTmwd5fUbF0tR2Qd2zEl3DCvB8LIDWiVl
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
8. 금칙어 관리
8.1. 금칙어를 파일로 등록
Request
POST /api/v1/profanities/upload HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=profanity-list.txt
Content-Type: text/plain
content 예시
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request Part
Part | Description | Optional |
---|---|---|
|
금칙어 목록 파일 |
false |
Response
HTTP/1.1 201 Created
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
8.2. 금칙어 정보 csv 파일로 저장
Request
GET /api/v1/profanities/csv?_csrf=q-NeXGkySGOKwjtm9AIFiamDgCXOlSFDWic4FMOAin6y-SIeyNdsOQxWKVOn8g0Cly8x68iwrR2tpRBuOUZbdfOx60eAnEAr HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
Response
HTTP/1.1 201 Created
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 35
{"url":"/files/profanity_info.csv"}
Response Body
Path | Type | Description |
---|---|---|
|
|
csv 파일 다운로드 s3 url |
8.3. 금칙어 정보 단일 추가
Request
POST /api/v1/profanities?_csrf=gIxzx8yjVVzdMyMcoaOWzHuu_B4Sol2p0gREvRX8E4sjugdRtr8S8qqQZW3wAhp5xI6i_kyY0SZxw2SEtzQl2yPIJu1H2zJm HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 23
Host: localhost:8080
{
"word" : "바보"
}
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
금칙어 |
Response
HTTP/1.1 201 Created
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
8.4. 금칙어 정보 단일 삭제
Request
DELETE /api/v1/profanities?_csrf=bIoIght0nYEIvogJDVB2wJreDnQ4OWyrwvCCsY8X-gmhEvA3Cus9unkWqbAl3LxvOn1C8vm6I01ZCA-GoZS3gb8mmWqXJpYF HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 23
Host: localhost:8080
{
"word" : "바보"
}
Request Body
필드명 | 타입 | 필수 값 | Description |
---|---|---|---|
|
|
true |
금칙어 |
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
9. 예외 코드
9.1. 유저
코드 | 코드 설명 |
---|---|
|
존재하지 않는 유저입니다 |
|
이미 북마크한 이벤트입니다 |
|
존재하지 않는 북마크입니다 |
|
탈퇴 할 수 없는 유저입니다 |
|
삭제된 사용자 입니다 |
|
요청에 null 값이 있습니다 |
|
올바른 이메일을 입력해 주세요 |
|
올바른 전화번호를 입력해 주세요 |
|
2자 이상 10자 이하의 이름을 입력해 주세요 |
9.2. 클럽
코드 | 코드 설명 |
---|---|
|
존재하지 않는 클럽입니다 |
|
존재하지 않는 공지사항입니다 |
|
혼자 남은 관리자는 강등될 수 없습니다 |
|
이미 해당 클럽에 가입되어 있습니다 |
|
해당 클럽의 멤버가 아닙니다 |
|
권한이 없습니다 |
|
마지막 관리자는 탈퇴가 불가합니다 |
|
클럽 이름은 중복될 수 없습니다 |
|
클럽 공지사항은 1000자를 넘을 수 없습니다 |
9.3. 초대 링크 관련
코드 | 코드 설명 |
---|---|
|
해당 초대코드를 보유한 클럽이 없습니다 |
|
만료된 초대링크 입니다 |
9.4. 행사
코드 | 코드 설명 |
---|---|
|
존재하지 않는 행사입니다 |
|
클럽을 제외한 카테고리의 행사만 조회 가능합니다 |
|
이미 신청한 행사입니다 |
|
|
신청한 이력이 없는 행사입니다 |
|
정원을 초과하였습니다 |
|
행사 티켓 매수는 필수입니다 |
|
인 당 티켓 예매 가능 수를 초과하였습니다 |
|
폼이 없거나 관리모드를 설정하지 않은 폼입니다. |
|
제목은 1~30자 사이의 길이의 필수값입니다. |
|
내용은 1~200자 사이의 길이입니다. |
|
위치는 1~30자 사이의 길이입니다. |
|
비용은 1이상 100만원이하의 값입니다. |
|
정원은 1~999사이의 값입니다. |
|
은행명은 1~20자 사이의 길이입니다. |
|
은행 계좌번호는 1~30자 사이의 길이입니다. |
|
인 당 예매 가능 수는 1이상 999이하의 값입니다. |
|
행사 카테고리는 필수 값입니다. |
|
행사 포스터는 필수 값입니다. |
|
올바르지 못한 이벤트 유저 입니다 |
|
9.5. 폼
코드 | 코드 설명 |
---|---|
|
존재하지 않는 폼입니다 |
|
존재하지 않는 폼 옵션 입니다 |
|
존재하지 않는 유저의 폼 답변입니다 |
|
폼이 존재하는 행사입니다 |
9.6. Global
코드 | 코드 설명 |
---|---|
|
잘못된 요청입니다 |
|
JSON 데이터를 변환하는데 실패했습니다. |
|
토큰 포멧이 잘못되었습니다 |
|
엑세스 토큰이 없습니다 |
|
엑세스 토큰이 만료되었습니다 |
|
리프레시 토큰이 만료되었습니다 |
|
유효하지 않은 엑세스 토큰입니다 |
|
유효하지 않은 리프레시 토큰입니다 |
|
유효한 파일 확장자가 아닙니다 |
|
파일 업로드에 실패했습니다 |
|
이미지의 최대 크기를 초과했습니다 |
|
HTTP 요청(메서드)이 잘못되었습니다"); |
|
카카오 로그아웃에 실패했습니다 |
|
카카오 계정 연결 해제에 실패했습니다 |
9.7. 금칙어
코드 | 코드 설명 |
---|---|
|
비속어 목록 Trie 생성 실패 |
|
비속어가 발견 되었습니다 |
|
md,txt 파일만 업로드 가능합니다 |
|
금칙어 저장에 실패했습니다 |
|
이미 존재하는 금칙어 입니다 |
|
csv 파일 생성에 실패했습니다 |