1. 인증
1.1. 로그인
1.1.1. 성공
HTTP request
POST /v1/auth/login HTTP/1.1
Content-Type: application/json
Host: localhost:36721
Content-Length: 60
{
"email" : "admin@email.com",
"password" : "qwer1234"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
사용자 이메일 |
|
|
사용자 패스워드 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0NSwiZXhwIjoxNzQ5NzA5MTQ1fQ.RrhJ6Zr37zHV_kZnj5v-s0cvFJ1fUghVbOgYcJ2QowA; Path=/; Domain=localhost; Max-Age=7200; Expires=Thu, 29 May 2025 08:19:05 GMT; SameSite=none
Set-Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0NSwiZXhwIjoxNzQ5NzA5MTQ1fQ.RrhJ6Zr37zHV_kZnj5v-s0cvFJ1fUghVbOgYcJ2QowA; Path=/; Domain=localhost; Max-Age=7200; Expires=Thu, 29 May 2025 08:19:05 GMT; SameSite=none
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:04 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 18
{
"clubId" : 2
}
Response headers
Name | Description |
---|---|
|
인증 쿠키 설정 |
Response cookies
Name | Description |
---|---|
|
Access Token |
|
Refresh Token |
1.1.2. 실패: 잘못된 패스워드
HTTP request
POST /v1/auth/login HTTP/1.1
Content-Type: application/json
Host: localhost:36721
Content-Length: 65
{
"email" : "admin@email.com",
"password" : "wrongPassword"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
사용자 이메일 |
|
|
잘못된 패스워드 |
HTTP response
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:04 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 166
{
"type" : "about:blank",
"title" : "Unauthorized",
"status" : 401,
"detail" : "비밀번호가 일치하지 않습니다.",
"instance" : "/v1/auth/login"
}
1.1.3. 실패: 존재하지 않는 이메일
HTTP request
POST /v1/auth/login HTTP/1.1
Content-Type: application/json
Host: localhost:36721
Content-Length: 114
{
"email" : "invalid@email.com",
"password" : "$2a$10$rG0JsflKdGcORjGFTURYb.npEgtvClK4.3P.EMr/o3SdekrVFxOvG"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
존재하지 않는 이메일 |
|
|
사용자 패스워드 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:04 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 157
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 회원입니다.",
"instance" : "/v1/auth/login"
}
1.2. 로그아웃
1.2.1. 성공
HTTP request
POST /v1/auth/logout HTTP/1.1
Content-Type: application/json
Host: localhost:36721
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0NCwiZXhwIjoxNzQ5NzA5MTQ0fQ.D0V_dfuDTnEZ3FgRbbABKqCYxTUJ1IdisbnF_wahPnc
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: accessToken=; Path=/; Domain=localhost; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=none
Set-Cookie: refreshToken=; Path=/; Domain=localhost; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=none
Date: Thu, 29 May 2025 06:19:04 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Response headers
Name | Description |
---|---|
|
인증 해제 쿠키 설정 |
1.2.2. 실패: 존재하지 않는 토큰
HTTP request
POST /v1/auth/logout HTTP/1.1
Content-Type: application/json
Host: localhost:36721
HTTP response
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:04 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 171
{
"type" : "about:blank",
"title" : "Unauthorized",
"status" : 401,
"detail" : "로그인 정보가 유효하지 않습니다.",
"instance" : "/v1/auth/logout"
}
2. 사용자
2.1. 사용자 회원가입
2.1.1. 성공
HTTP request
POST /v1/members/signup HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 120
{
"clubName" : "크루루",
"email" : "mail@mail.com",
"password" : "newPassword214!",
"phone" : "01012341234"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
동아리명 |
|
|
사용자 이메일 |
|
|
사용자 패스워드 |
|
|
사용자 전화번호 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /v1/members/2
Date: Thu, 29 May 2025 06:19:14 GMT
Keep-Alive: timeout=60
Connection: keep-alive
2.1.2. 실패: 유효하지 않은 요청
HTTP request
POST /v1/members/signup HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 109
{
"clubName" : "크루루",
"email" : "mail@mail.com",
"password" : "newPassword214!",
"phone" : ""
}
Request fields
Path | Type | Description |
---|---|---|
|
|
동아리명 |
|
|
사용자 이메일 |
|
|
사용자 패스워드 |
|
|
사용자 전화번호 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:14 GMT
Connection: close
Content-Length: 170
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{phone=전화번호를 입력해주세요.}",
"instance" : "/v1/members/signup"
}
2.1.3. 실패: 인증되지 않은 이메일
HTTP request
POST /v1/members/signup HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 120
{
"clubName" : "크루루",
"email" : "mail@mail.com",
"password" : "newPassword214!",
"phone" : "01012341234"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
동아리명 |
|
|
인증되지 않은 사용자 이메일 |
|
|
사용자 패스워드 |
|
|
사용자 전화번호 |
HTTP response
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:14 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 162
{
"type" : "about:blank",
"title" : "Unauthorized",
"status" : 401,
"detail" : "로그인 정보가 유효하지 않습니다.",
"instance" : "/error"
}
2.2. 사용자 이메일 변경
2.2.1. 성공
HTTP request
PATCH /v1/members/1/email HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 34
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NCwiZXhwIjoxNzQ5NzA5MTU0fQ.3BtaeottC4TvWAyOK75beVXy2MWsrHED_KY0CPDcdAM
{
"email" : "change@email.com"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
이메일을 변경할 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
변경할 이메일, 이메일 인증 필요 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:14 GMT
Keep-Alive: timeout=60
Connection: keep-alive
2.2.2. 실패: 인증되지 않은 사용자 이메일
HTTP request
PATCH /v1/members/1/email HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 34
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NSwiZXhwIjoxNzQ5NzA5MTU1fQ.LNgqR_Jy0NHgwgODr-mD9nhHwBfpL9f2msc0cBctzPw
{
"email" : "change@email.com"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
이메일을 변경할 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
인증되지 않은 사용자 이메일 |
HTTP response
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:14 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 165
{
"type" : "about:blank",
"title" : "Unauthorized",
"status" : 401,
"detail" : "이메일 인증이 필요합니다.",
"instance" : "/v1/members/1/email"
}
2.2.3. 실패: 적절하지 않은 이메일 형식
HTTP request
PATCH /v1/members/1/email HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 28
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NSwiZXhwIjoxNzQ5NzA5MTU1fQ.LNgqR_Jy0NHgwgODr-mD9nhHwBfpL9f2msc0cBctzPw
{
"email" : "@email.com"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
이메일을 변경할 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
적절하지 않은 이메일 형식 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:14 GMT
Connection: close
Content-Length: 171
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{email=must be a well-formed email address}",
"instance" : "/v1/members/1/email"
}
2.3. 사용자 비밀번호 변경
2.3.1. 성공
HTTP request
PATCH /v1/members/1/password HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 37
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NSwiZXhwIjoxNzQ5NzA5MTU1fQ.LNgqR_Jy0NHgwgODr-mD9nhHwBfpL9f2msc0cBctzPw
{
"password" : "NewPassword123!!"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
비밀번호를 변경할 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
변경할 비밀번호 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:14 GMT
Keep-Alive: timeout=60
Connection: keep-alive
2.3.2. 실패: 적절하지 않은 비밀번호 형식
HTTP request
PATCH /v1/members/1/password HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 32
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NSwiZXhwIjoxNzQ5NzA5MTU1fQ.LNgqR_Jy0NHgwgODr-mD9nhHwBfpL9f2msc0cBctzPw
{
"password" : "Password123"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
비밀번호를 변경할 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
잘못된 비밀번호 형식 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:14 GMT
Connection: close
Content-Length: 190
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "입력하신 비밀번호의 형식이 맞지 않습니다.",
"instance" : "/v1/members/1/password"
}
3. 지원자
3.1. 지원자들의 프로세스 일괄 수정
3.1.1. 성공
HTTP request
PUT /v1/applicants/move-process/2 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 28
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMiwiZXhwIjoxNzQ5NzA5MTMyfQ.imCeyGg1GiGdfwKFp89OkKUZg904RcELUH51XXyXLNU
{
"applicantIds" : [ 1 ]
}
Path parameters
Parameter | Description |
---|---|
|
지원자들이 옮겨질 프로세스의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
프로세스를 옮길 지원자들의 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:51 GMT
Keep-Alive: timeout=60
Connection: keep-alive
3.1.2. 실패: 존재하지 않는 프로세스
HTTP request
PUT /v1/applicants/move-process/-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 28
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
{
"applicantIds" : [ 1 ]
}
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 프로세스의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
프로세스를 옮길 지원자들의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 174
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Process입니다.",
"instance" : "/v1/applicants/move-process/-1"
}
3.2. 지원자 기본 정보 조회
3.2.1. 성공
HTTP request
GET /v1/applicants/1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
Path parameters
Parameter | Description |
---|---|
|
지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 261
{
"applicant" : {
"id" : 1,
"name" : "도비",
"email" : "DOBBY@email.com",
"phone" : "01000000000",
"isRejected" : false,
"createdAt" : "2025-05-29T06:18:53.425509"
},
"process" : {
"id" : 1,
"name" : "지원 접수"
}
}
Response fields
Path | Type | Description |
---|---|---|
|
|
지원자의 id |
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원자의 불합격 여부 |
|
|
지원자의 생성날짜 |
|
|
프로세스의 id |
|
|
프로세스 이름 |
3.2.2. 실패: 존재하지 않는 지원자
HTTP request
GET /v1/applicants/-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUyOSwiZXhwIjoxNzQ5NzA5MTI5fQ.grHcjgwCO6inUxDh8GW9LyPaftCpMEdNT8bkKYAOtnk
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:51 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 163
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/applicants/-1"
}
3.3. 지원자 상세 정보 조회
3.3.1. 성공
HTTP request
GET /v1/applicants/1/detail HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMiwiZXhwIjoxNzQ5NzA5MTMyfQ.imCeyGg1GiGdfwKFp89OkKUZg904RcELUH51XXyXLNU
Path parameters
Parameter | Description |
---|---|
|
지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 114
{
"details" : [ {
"orderIndex" : 1,
"question" : "주관식 단답형",
"answer" : "응답1"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
답변들 |
|
|
순서 |
|
|
질문 |
|
|
질문에 대한 응답 |
3.3.2. 실패: 존재하지 않는 지원자
HTTP request
GET /v1/applicants/-1/detail HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
Path parameters
Parameter | Description |
---|---|
|
지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 170
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/applicants/-1/detail"
}
3.4. 지원자 불합격
3.4.1. 성공
HTTP request
PATCH /v1/applicants/1/reject HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
Path parameters
Parameter | Description |
---|---|
|
지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
3.4.2. 실패: 존재하지 않는 지원자
HTTP request
PATCH /v1/applicants/-1/reject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
Path parameters
Parameter | Description |
---|---|
|
지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 170
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/applicants/-1/reject"
}
3.4.3. 실패: 이미 불합격한 지원자
HTTP request
PATCH /v1/applicants/1/reject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Connection: close
Content-Length: 171
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "이미 불합격한 지원자입니다.",
"instance" : "/v1/applicants/1/reject"
}
3.5. 지원자 불합격 해제
3.5.1. 성공
HTTP request
PATCH /v1/applicants/1/unreject HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
Path parameters
Parameter | Description |
---|---|
|
지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
3.5.2. 실패: 존재하지 않는 지원자
HTTP request
PATCH /v1/applicants/-1/unreject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 172
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/applicants/-1/unreject"
}
3.5.3. 실패: 불합격하지 않은 지원자
HTTP request
PATCH /v1/applicants/1/unreject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMiwiZXhwIjoxNzQ5NzA5MTMyfQ.imCeyGg1GiGdfwKFp89OkKUZg904RcELUH51XXyXLNU
Path parameters
Parameter | Description |
---|---|
|
불합격하지 않는 지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Connection: close
Content-Length: 176
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "불합격하지 않은 지원자입니다.",
"instance" : "/v1/applicants/1/unreject"
}
3.6. 지원자 정보 변경
3.6.1. 성공
HTTP request
PATCH /v1/applicants/1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 85
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
{
"name" : "도비",
"email" : "dev.DOBBY@gmail.com",
"phone" : "01011111111"
}
Path parameters
Parameter | Description |
---|---|
|
지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
3.6.2. 실패: 존재하지 않는 지원자
HTTP request
PATCH /v1/applicants/-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 85
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
{
"name" : "도비",
"email" : "dev.DOBBY@gmail.com",
"phone" : "01011111111"
}
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원자의 id |
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 163
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/applicants/-1"
}
3.7. 지원자 일괄 불합격
3.7.1. 성공
HTTP request
PATCH /v1/applicants/reject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 31
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMiwiZXhwIjoxNzQ5NzA5MTMyfQ.imCeyGg1GiGdfwKFp89OkKUZg904RcELUH51XXyXLNU
{
"applicantIds" : [ 1, 2 ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
불합격 시킬 지원자들의 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:51 GMT
Keep-Alive: timeout=60
Connection: keep-alive
3.7.2. 실패: 존재하지 않는 지원자
HTTP request
PATCH /v1/applicants/reject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 29
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
{
"applicantIds" : [ -1 ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
존재하지 않는 지원자의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 167
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/applicants/reject"
}
3.7.3. 실패: 이미 불합격한 지원자
HTTP request
PATCH /v1/applicants/reject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 28
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
{
"applicantIds" : [ 1 ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
이미 불합격한 지원자의 id |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Connection: close
Content-Length: 169
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "이미 불합격한 지원자입니다.",
"instance" : "/v1/applicants/reject"
}
3.8. 지원자 일괄 불합격 해제
3.8.1. 성공
HTTP request
PATCH /v1/applicants/unreject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 31
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMiwiZXhwIjoxNzQ5NzA5MTMyfQ.imCeyGg1GiGdfwKFp89OkKUZg904RcELUH51XXyXLNU
{
"applicantIds" : [ 1, 2 ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
불합격 해제시킬 지원자들의 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:51 GMT
Keep-Alive: timeout=60
Connection: keep-alive
3.8.2. 실패: 존재하지 않는 지원자
HTTP request
PATCH /v1/applicants/unreject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 29
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMiwiZXhwIjoxNzQ5NzA5MTMyfQ.imCeyGg1GiGdfwKFp89OkKUZg904RcELUH51XXyXLNU
{
"applicantIds" : [ -1 ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
존재하지 않는 지원자의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:51 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 169
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/applicants/unreject"
}
3.8.3. 실패: 불합격 하지 않은 지원자
HTTP request
PATCH /v1/applicants/unreject HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 28
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzMywiZXhwIjoxNzQ5NzA5MTMzfQ.ztbpYvSozWhOYu-2bFGEp3wmWxRgkfNwO5xydvg9c28
{
"applicantIds" : [ 1 ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request fields
Path | Type | Description |
---|---|---|
|
|
불합격하지 않은 지원자의 id |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Connection: close
Content-Length: 174
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "불합격하지 않은 지원자입니다.",
"instance" : "/v1/applicants/unreject"
}
4. 동아리
4.1. 동아리 생성
4.1.1. 성공
HTTP request
POST /v1/clubs?memberId=2 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 33
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OCwiZXhwIjoxNzQ5NzA5MTQ4fQ.c5hNQPZ_jXnb04txNNCBf5WgHZpo_gVfilXm3rZMiDU
{
"name" : "연합 동아리"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
동아리를 생성할 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
생성할 동아리의 이름 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /v1/clubs/2
Date: Thu, 29 May 2025 06:19:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive
4.1.2. 실패: 존재하지 않는 사용자
HTTP request
POST /v1/clubs?memberId=-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 33
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OCwiZXhwIjoxNzQ5NzA5MTQ4fQ.c5hNQPZ_jXnb04txNNCBf5WgHZpo_gVfilXm3rZMiDU
{
"name" : "연합 동아리"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
존재하지 않는 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
생성할 동아리의 이름 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 152
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 회원입니다.",
"instance" : "/v1/clubs"
}
4.1.3. 실패: 조건에 맞지 않는 동아리 이름
HTTP request
POST /v1/clubs?memberId=2 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 17
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OCwiZXhwIjoxNzQ5NzA5MTQ4fQ.c5hNQPZ_jXnb04txNNCBf5WgHZpo_gVfilXm3rZMiDU
{
"name" : ""
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
동아리를 생성할 사용자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
조건에 맞지 않는 동아리의 이름 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:08 GMT
Connection: close
Content-Length: 165
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{name=동아리 이름은 필수 값입니다.}",
"instance" : "/v1/clubs"
}
5. 대시보드
5.1. 대시보드 생성
5.1.1. 성공
HTTP request
POST /v1/dashboards?clubId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 398
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OSwiZXhwIjoxNzQ5NzA5MTQ5fQ.o6IYu0xAZPZZh3Jh1kg3Wu0Vb7p7eJ6XjvALaD3Jk9k
{
"title" : "크루루대시보드",
"postingContent" : "# 공고 내용",
"questions" : [ {
"type" : "DROPDOWN",
"question" : "객관식질문1",
"description" : null,
"choices" : [ {
"choice" : "선택지1",
"orderIndex" : 1
} ],
"orderIndex" : 1,
"required" : false
} ],
"startDate" : "2024-08-02T02:00:00",
"endDate" : "2024-08-08T02:00:00"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
동아리의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
공고 제목 |
|
|
공고 내용 |
|
|
질문들 |
|
|
공고 시작 날짜 |
|
|
공고 마감 날짜 |
|
|
질문 유형 |
|
|
질문 내용 |
|
|
질문 보조 설명 |
|
|
질문의 선택지들 |
|
|
질문의 순서 |
|
|
질문의 필수여부 |
|
|
객관식 질문의 선택지 |
|
|
선택지의 순서 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /v1/dashboards/1
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 63
{
"applyFormId" : "715811451059987197",
"dashboardId" : 1
}
5.1.2. 실패: 적절하지 않은 질문 생성
HTTP request
POST /v1/dashboards?clubId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 396
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OSwiZXhwIjoxNzQ5NzA5MTQ5fQ.o6IYu0xAZPZZh3Jh1kg3Wu0Vb7p7eJ6XjvALaD3Jk9k
{
"title" : "크루루대시보드",
"postingContent" : "# 공고 내용",
"questions" : [ {
"type" : "DROPDOWN",
"question" : "객관식질문",
"description" : null,
"choices" : [ {
"choice" : "선택지1",
"orderIndex" : 0
} ],
"orderIndex" : 0,
"required" : null
} ],
"startDate" : "2024-08-02T02:00:00",
"endDate" : "2024-08-08T02:00:00"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
동아리의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
공고 제목 |
|
|
공고 내용 |
|
|
질문들 |
|
|
공고 시작 날짜 |
|
|
공고 마감 날짜 |
|
|
질문 유형 |
|
|
질문 내용 |
|
|
질문 보조 설명 |
|
|
질문의 선택지들 |
|
|
질문의 순서 |
|
|
질문의 필수여부 |
|
|
객관식 질문의 선택지 |
|
|
선택지의 순서 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:09 GMT
Connection: close
Content-Length: 163
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{questions[0].required=must not be null}",
"instance" : "/v1/dashboards"
}
5.1.3. 실패: 존재하지 않는 동아리
HTTP request
POST /v1/dashboards?clubId=-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 398
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OSwiZXhwIjoxNzQ5NzA5MTQ5fQ.o6IYu0xAZPZZh3Jh1kg3Wu0Vb7p7eJ6XjvALaD3Jk9k
{
"title" : "크루루대시보드",
"postingContent" : "# 공고 내용",
"questions" : [ {
"type" : "DROPDOWN",
"question" : "객관식질문1",
"description" : null,
"choices" : [ {
"choice" : "선택지1",
"orderIndex" : 1
} ],
"orderIndex" : 1,
"required" : false
} ],
"startDate" : "2024-08-02T02:00:00",
"endDate" : "2024-08-08T02:00:00"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
존재하지 않는 동아리 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
공고 제목 |
|
|
공고 내용 |
|
|
질문들 |
|
|
공고 시작 날짜 |
|
|
공고 마감 날짜 |
|
|
질문 유형 |
|
|
질문 내용 |
|
|
질문 보조 설명 |
|
|
질문의 선택지들 |
|
|
질문의 순서 |
|
|
질문의 필수여부 |
|
|
객관식 질문의 선택지 |
|
|
선택지의 순서 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 155
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Club입니다.",
"instance" : "/v1/dashboards"
}
5.2. 대시보드 조회
5.2.1. 성공
HTTP request
GET /v1/dashboards?clubId=1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OSwiZXhwIjoxNzQ5NzA5MTQ5fQ.o6IYu0xAZPZZh3Jh1kg3Wu0Vb7p7eJ6XjvALaD3Jk9k
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
동아리의 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 356
{
"dashboards" : [ {
"dashboardId" : 1,
"applyFormId" : "715811451559108798",
"title" : "크루루 백엔드 모집 공고",
"stats" : {
"accept" : 0,
"fail" : 0,
"inProgress" : 0,
"total" : 0
},
"startDate" : "2024-07-31T02:00:00",
"endDate" : "2024-08-08T02:00:00"
} ],
"clubName" : "크루루"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
동아리명 |
|
|
대시보드들의 요약 정보 |
|
|
대시보드의 id |
|
|
지원폼의 id |
|
|
지원폼의 공고명 |
|
|
합격 인원 |
|
|
불합격 인원 |
|
|
진행중 인원 |
|
|
인원 총계 |
|
|
시작날짜 |
|
|
마감날짜 |
5.3. 대시보드 삭제
5.3.1. 성공
HTTP request
DELETE /v1/dashboards/1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OSwiZXhwIjoxNzQ5NzA5MTQ5fQ.o6IYu0xAZPZZh3Jh1kg3Wu0Vb7p7eJ6XjvALaD3Jk9k
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
삭제할 대시보드의 id |
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive
5.3.2. 실패: 존재하지 않는 대시보드
HTTP request
DELETE /v1/dashboards/-1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0OSwiZXhwIjoxNzQ5NzA5MTQ5fQ.o6IYu0xAZPZZh3Jh1kg3Wu0Vb7p7eJ6XjvALaD3Jk9k
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 대시보드의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 163
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Dashboard입니다.",
"instance" : "/v1/dashboards/-1"
}
6. 프로세스
6.1. 프로세스 목록 조회
6.1.1. 성공
HTTP request
GET /v1/processes?dashboardId=1&minScore=0.00&maxScore=5.00&evaluationStatus=ALL&sortByCreatedAt=DESC&sortByScore=null HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
대시보드의 id, required=true |
|
지원자 최소 평균 점수: 0.00(default) ~ 5.00, required=false |
|
지원자 최대 평균 점수: 0.00 ~ 5.00(default), required=false |
|
지원자 평가 유무: ALL(default), NOT_EVALUATED, EVALUATED, required=false |
|
지원자 지원 날짜 정렬 조건: DESC, ASC, required=false |
|
지원자 평균 점수 정렬 조건: DESC, ASC, required=false |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 870
{
"processes" : [ {
"processId" : 1,
"orderIndex" : 0,
"applicants" : [ {
"applicantId" : 1,
"applicantName" : "도비",
"createdAt" : "2025-05-29T06:19:17.338567",
"isRejected" : false,
"evaluationCount" : 0,
"averageScore" : 0.0
} ],
"name" : "지원 접수",
"description" : "지원자가 지원서를 제출하는 단계"
}, {
"processId" : 2,
"orderIndex" : 1,
"applicants" : [ ],
"name" : "1차 면접",
"description" : "화상 면접"
}, {
"processId" : 3,
"orderIndex" : 0,
"applicants" : [ ],
"name" : "지원 접수",
"description" : "지원자가 지원서를 제출하는 단계"
} ],
"applyFormId" : "715811485746880605",
"title" : "크루루 백엔드 모집 공고",
"startDate" : "2024-07-31T02:00:00",
"endDate" : "2024-08-08T02:00:00"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
지원폼의 id |
|
|
프로세스 목록 |
|
|
지원폼의 제목 |
|
|
지원폼 모집 시작일 |
|
|
지원폼 모집 종료일 |
|
|
프로세스의 id |
|
|
프로세스의 순서 |
|
|
프로세스명 |
|
|
프로세스의 설명 |
|
|
프로세스에 속한 지원자들 |
|
|
지원자의 id |
|
|
지원자의 이름 |
|
|
지원자의 지원날짜 |
|
|
지원자의 불합격 여부 |
|
|
지원자의 평가 개수 |
|
|
지원자의 평가 평균 점수 |
6.1.2. 실패: 존재하지 않는 대시보드
HTTP request
GET /v1/processes?dashboardId=0 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
존재하지 않는 대시보드의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 159
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Dashboard입니다.",
"instance" : "/v1/processes"
}
6.2. 프로세스 생성
6.2.1. 성공
HTTP request
POST /v1/processes?dashboardId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 90
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"processName" : "1차 면접",
"orderIndex" : 1,
"description" : "화상 면접"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
대시보드의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
프로세스명 |
|
|
프로세스의 설명 |
|
|
프로세스의 순서 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
6.2.2. 실패: 존재하지 않는 대시보드
HTTP request
POST /v1/processes?dashboardId=-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 90
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"processName" : "1차 면접",
"orderIndex" : 1,
"description" : "화상 면접"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
대시보드의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
프로세스명 |
|
|
프로세스의 설명 |
|
|
프로세스의 순서 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 159
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Dashboard입니다.",
"instance" : "/v1/processes"
}
6.2.3. 실패: 조건에 맞지 않는 프로세스 이름
HTTP request
POST /v1/processes?dashboardId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 79
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"processName" : "",
"orderIndex" : 1,
"description" : "화상 면접"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
대시보드의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
부적절한 프로세스명 |
|
|
프로세스의 설명 |
|
|
프로세스의 순서 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Connection: close
Content-Length: 172
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{name=프로세스 이름은 필수 값입니다.}",
"instance" : "/v1/processes"
}
6.2.4. 실패: 최대 프로세스 개수 초과
HTTP request
POST /v1/processes?dashboardId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 81
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"processName" : "name",
"orderIndex" : 3,
"description" : "description"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
생성할 프로세스의 대시보드 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
프로세스명 |
|
|
프로세스의 설명 |
|
|
프로세스의 순서 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Connection: close
Content-Length: 179
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "프로세스는 최대 5개까지 생성 가능합니다.",
"instance" : "/v1/processes"
}
6.3. 프로세스 수정
6.3.1. 성공
HTTP request
PATCH /v1/processes/1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 81
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"processName" : "임시 과정",
"description" : "수정된 프로세스"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
수정될 프로세스의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
프로세스명 |
|
|
프로세스의 설명 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 322
{
"processId" : 1,
"orderIndex" : 0,
"applicants" : [ {
"applicantId" : 1,
"applicantName" : "도비",
"createdAt" : "2025-05-29T06:19:17.285308",
"isRejected" : false,
"evaluationCount" : 0,
"averageScore" : 0.0
} ],
"name" : "임시 과정",
"description" : "수정된 프로세스"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
프로세스의 id |
|
|
프로세스의 순서 |
|
|
프로세스명 |
|
|
프로세스의 설명 |
|
|
프로세스에 속한 지원자들 |
|
|
지원자의 id |
|
|
지원자의 이름 |
|
|
지원자의 지원날짜 |
|
|
지원자의 불합격 여부 |
|
|
지원자의 평가 개수 |
|
|
지원자의 평가 평균 점수 |
6.3.2. 실패: 조건에 맞지 않는 프로세스 이름
HTTP request
PATCH /v1/processes/1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 57
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"processName" : "",
"description" : "description"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
수정될 프로세스의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
조건에 맞지 않는 프로세스 이름 |
|
|
수정될 프로세스 설명 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Connection: close
Content-Length: 184
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{name=수정할 프로세스 이름은 필수 값입니다.}",
"instance" : "/v1/processes/1"
}
6.3.3. 실패: 존재하지 않는 프로세스
HTTP request
PATCH /v1/processes/-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 81
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"processName" : "임시 과정",
"description" : "수정된 프로세스"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
수정될 프로세스의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
조건에 맞지 않는 프로세스 이름 |
|
|
수정될 프로세스 설명 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 160
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Process입니다.",
"instance" : "/v1/processes/-1"
}
6.4. 프로세스 삭제
6.4.1. 성공
HTTP request
DELETE /v1/processes/1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
생성할 프로세스의 대시보드 id |
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
6.4.2. 실패: 존재하지 않는 프로세스
HTTP request
DELETE /v1/processes/-1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
삭제할 프로세스의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 160
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Process입니다.",
"instance" : "/v1/processes/-1"
}
6.4.3. 실패: 처음 혹은 마지막 프로세스
HTTP request
DELETE /v1/processes/1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
삭제할 프로세스의 id |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Connection: close
Content-Length: 169
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "삭제가 불가능한 프로세스입니다.",
"instance" : "/v1/processes/1"
}
6.4.4. 실패: 지원자가 존재하는 프로세스
HTTP request
DELETE /v1/processes/-1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
삭제할 프로세스의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 160
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Process입니다.",
"instance" : "/v1/processes/-1"
}
7. 질문
7.1. 질문 변경
7.1.1. 성공
HTTP request
PATCH /v1/questions?applyformId=715811488326377528 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 247
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"questions" : [ {
"type" : "LONG_ANSWER",
"question" : "new",
"description" : null,
"choices" : [ {
"choice" : "좋아하는 음식은?",
"orderIndex" : 0
} ],
"orderIndex" : 0,
"required" : true
} ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
질문을 변경할 지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
변경할 질문들 |
|
|
질문의 유형 |
|
|
질문 내용 |
|
|
질문 보조 설명 |
|
|
질문의 선택지들 |
|
|
질문의 순서 |
|
|
질문의 필수 여부 |
|
|
선택지의 내용 |
|
|
선택지의 순서 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
7.1.2. 실패: 존재하지 않는 지원폼
HTTP request
PATCH /v1/questions?applyformId=-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 247
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1NywiZXhwIjoxNzQ5NzA5MTU3fQ.Eo0N_lqpbliiQcF-wFJTq_iPPxgceCsX4vykmZlPGDk
{
"questions" : [ {
"type" : "LONG_ANSWER",
"question" : "new",
"description" : null,
"choices" : [ {
"choice" : "좋아하는 음식은?",
"orderIndex" : 0
} ],
"orderIndex" : 0,
"required" : true
} ]
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
변경할 질문들 |
|
|
질문의 유형 |
|
|
질문 내용 |
|
|
질문 보조 설명 |
|
|
질문의 선택지들 |
|
|
질문의 순서 |
|
|
질문의 필수 여부 |
|
|
선택지의 내용 |
|
|
선택지의 순서 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:17 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 159
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 ApplyForm입니다.",
"instance" : "/v1/questions"
}
8. 지원폼
8.1. 지원폼 제출
8.1.1. 성공
HTTP request
POST /v1/applyform/715811414137528371/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 332
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ {
"questionId" : 1,
"replies" : [ "안녕하세요, 맛있는 초코칩입니다." ]
}, {
"questionId" : 2,
"replies" : [ "온라인" ]
} ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
|
|
질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /v1/applyform/715811414137528371
Date: Thu, 29 May 2025 06:19:00 GMT
Keep-Alive: timeout=60
Connection: keep-alive
8.1.2. 실패: 개인정보 활용 거부
HTTP request
POST /v1/applyform/715811413571297372/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 333
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ {
"questionId" : 1,
"replies" : [ "안녕하세요, 맛있는 초코칩입니다." ]
}, {
"questionId" : 2,
"replies" : [ "온라인" ]
} ],
"personalDataCollection" : false
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 거부 |
|
|
질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Connection: close
Content-Length: 201
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "개인 정보 수집에 동의하지 않았습니다.",
"instance" : "/v1/applyform/715811413571297372/submit"
}
8.1.3. 실패: 잘못된 지원자 정보
HTTP request
POST /v1/applyform/715811420177326168/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 260
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : ""
},
"answers" : [ {
"questionId" : 1,
"replies" : [ "안녕하세요, 맛있는 초코칩입니다." ]
} ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
|
|
질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:01 GMT
Connection: close
Content-Length: 215
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{applicantCreateRequest.phone=전화번호는 필수 값입니다.}",
"instance" : "/v1/applyform/715811420177326168/submit"
}
8.1.4. 실패: 잘못된 답변
HTTP request
POST /v1/applyform/715811418491216048/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 223
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ {
"questionId" : 1,
"replies" : null
} ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
|
|
질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:01 GMT
Connection: close
Content-Length: 211
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{answerCreateRequest[0].replies=응답은 필수 값입니다.}",
"instance" : "/v1/applyform/715811418491216048/submit"
}
8.1.5. 실패: 대시보드 내에 제출 프로세스 존재하지 않을 경우
HTTP request
POST /v1/applyform/715811414951223451/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 234
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ {
"questionId" : 1,
"replies" : [ "온라인" ]
} ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
|
|
질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 500 Internal Server Error
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Connection: close
Content-Length: 204
{
"type" : "about:blank",
"title" : "Internal Server Error",
"status" : 500,
"detail" : "서버 내부에 오류가 발생했습니다.",
"instance" : "/v1/applyform/715811414951223451/submit"
}
8.1.6. 실패: 모집 기간을 벗어난 제출
HTTP request
POST /v1/applyform/715811415454539962/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 234
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ {
"questionId" : 1,
"replies" : [ "온라인" ]
} ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
|
|
질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Connection: close
Content-Length: 178
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "접수 기간이 아닙니다.",
"instance" : "/v1/applyform/715811415454539962/submit"
}
8.1.7. 실패: 존재하지 않는 지원폼
HTTP request
POST /v1/applyform/-1/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 234
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ {
"questionId" : 1,
"replies" : [ "온라인" ]
} ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
|
|
질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 173
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 지원서 폼입니다.",
"instance" : "/v1/applyform/-1/submit"
}
8.1.8. 실패: 존재하지 않는 질문
HTTP request
POST /v1/applyform/715811418013065370/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 235
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ {
"questionId" : -1,
"replies" : [ "온라인" ]
} ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
|
|
존재하지 않는 질문의 id |
|
|
질문에 대한 응답 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Connection: close
Content-Length: 232
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{answerCreateRequest[0].questionId=질문 식별자는 0 이상의 정수입니다.}",
"instance" : "/v1/applyform/715811418013065370/submit"
}
8.1.9. 실패: 필수 질문에 응답하지 않음
HTTP request
POST /v1/applyform/715811414674399443/submit HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 174
{
"applicant" : {
"name" : "초코칩",
"email" : "dev.chocochip@gmail.com",
"phone" : "01000000000"
},
"answers" : [ ],
"personalDataCollection" : true
}
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원자의 이름 |
|
|
지원자의 이메일 |
|
|
지원자의 전화번호 |
|
|
지원폼에 대한 응답 모음 |
|
|
개인정보 활용 동의 여부 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Connection: close
Content-Length: 201
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "응답하지 않은 필수 질문이 존재합니다.",
"instance" : "/v1/applyform/715811414674399443/submit"
}
8.2. 지원폼 조회
8.2.1. 성공
HTTP request
GET /v1/applyform/715811415702003738 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0MCwiZXhwIjoxNzQ5NzA5MTQwfQ.XprN6Th9D1uxFxiWP6Jxuwh8-czL8T6Assdu5emD0K0
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 1126
{
"postingContent" : "# 모집공고 설명1 ## 이렇게 지원하세요",
"questions" : [ {
"label" : "주관식 단답형",
"choices" : [ ],
"id" : 1,
"type" : "SHORT_ANSWER",
"description" : "한 줄로 답변이 가능한 짧은 문장을 작성해주세요.",
"orderIndex" : 1,
"required" : false
}, {
"label" : "객관식 다중 선택",
"choices" : [ {
"label" : "1번 선택지",
"id" : 1,
"orderIndex" : 1
}, {
"label" : "2번 선택지",
"id" : 2,
"orderIndex" : 2
}, {
"label" : "3번 선택지",
"id" : 3,
"orderIndex" : 3
}, {
"label" : "4번 선택지",
"id" : 4,
"orderIndex" : 4
}, {
"label" : "5번 선택지",
"id" : 5,
"orderIndex" : 5
} ],
"id" : 2,
"type" : "MULTIPLE_CHOICE",
"description" : "주어진 목록에서 여러 개의 옵션을 선택해주세요.",
"orderIndex" : 4,
"required" : false
} ],
"title" : "크루루 백엔드 모집 공고",
"startDate" : "2024-07-31T02:00:00",
"endDate" : "2024-08-08T02:00:00"
}
Response fields
Path | Type | Description |
---|---|---|
|
|
지원폼의 제목 |
|
|
지원자의 내용(본문) |
|
|
지원 가능 날짜 |
|
|
지원 마감 날짜 |
|
|
지원폼의 질문들 |
|
|
질문의 id |
|
|
질문 유형 |
|
|
질문의 내용 |
|
|
질문 보조 설명 |
|
|
질문 순서 |
|
|
질문의 선택지 |
|
|
질문 필수여부 |
|
|
선택지의 id |
|
|
선택지의 내용 |
|
|
선택지 순서 |
8.2.2. 실패: 존재하지 않는 지원폼
HTTP request
GET /v1/applyform/-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0MSwiZXhwIjoxNzQ5NzA5MTQxfQ.7dWd-WCiTfgYDF8hjmtm15Ed2Tj9pDQnb15FK1S-J90
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원폼의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:01 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 166
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 지원서 폼입니다.",
"instance" : "/v1/applyform/-1"
}
8.3. 지원폼 수정
8.3.1. 성공
HTTP request
PATCH /v1/applyform/715811417736241168 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 178
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0MSwiZXhwIjoxNzQ5NzA5MTQxfQ.7dWd-WCiTfgYDF8hjmtm15Ed2Tj9pDQnb15FK1S-J90
{
"title" : "크루루 백엔드 모집 공고~~",
"postingContent" : "# 모집 공고 설명 #",
"startDate" : "2024-08-02T02:00:00",
"endDate" : "2024-08-08T02:00:00"
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원폼 제목 |
|
|
지원폼 내용(본문) |
|
|
지원 시작 날짜 |
|
|
지원 마감 날짜 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:00 GMT
Keep-Alive: timeout=60
Connection: keep-alive
8.3.2. 실패: 존재하지 않는 지원폼
HTTP request
PATCH /v1/applyform/-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 178
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0MSwiZXhwIjoxNzQ5NzA5MTQxfQ.7dWd-WCiTfgYDF8hjmtm15Ed2Tj9pDQnb15FK1S-J90
{
"title" : "크루루 백엔드 모집 공고~~",
"postingContent" : "# 모집 공고 설명 #",
"startDate" : "2024-08-02T02:00:00",
"endDate" : "2024-08-08T02:00:00"
}
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원폼의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
지원폼 제목 |
|
|
지원폼 내용(본문) |
|
|
지원 시작 날짜 |
|
|
지원 마감 날짜 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:01 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 162
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 ApplyForm입니다.",
"instance" : "/v1/applyform/-1"
}
8.4. 지원자 정보 및 지원폼 제출 기록 CSV 파일 추출
8.4.1. 성공
HTTP request
GET /v1/applyform/715811416058519583/export-csv HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0MCwiZXhwIjoxNzQ5NzA5MTQwfQ.XprN6Th9D1uxFxiWP6Jxuwh8-czL8T6Assdu5emD0K0
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
지원폼의 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Disposition: attachment; filename=2025-05-29_applicant.csv
Content-Type: text/csv;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 155
이름,이메일,전화번호,제출일시,주관식 단답형,주관식 장문형
러쉬,RUSH@email.com,010-0000-0001,2025-05-29 06:19,응답1,응답2
8.4.2. 실패: 존재하지 않는 지원폼
HTTP request
GET /v1/applyform/-1/export-csv HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU0MSwiZXhwIjoxNzQ5NzA5MTQxfQ.7dWd-WCiTfgYDF8hjmtm15Ed2Tj9pDQnb15FK1S-J90
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 지원폼 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:00 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 173
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 ApplyForm입니다.",
"instance" : "/v1/applyform/-1/export-csv"
}
9. 평가
9.1. 평가 생성
9.1.1. 성공
HTTP request
POST /v1/evaluations?processId=1&applicantId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 93
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
{
"evaluator" : "김도엽",
"score" : 4,
"content" : "서류가 인상적입니다."
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
프로세스의 id |
|
지원자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
평가자 이름 |
|
|
평가 점수 |
|
|
평가 주관식 내용 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /v1/evaluations?processId=1&applicantId=1
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
9.1.2. 실패: 존재하지 않는 지원자
HTTP request
POST /v1/evaluations?processId=1&applicantId=-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 93
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
{
"evaluator" : "김도엽",
"score" : 4,
"content" : "서류가 인상적입니다."
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
프로세스의 id |
|
존재하지 않는 지원자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
평가자 이름 |
|
|
평가 점수 |
|
|
평가 주관식 내용 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 161
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/evaluations"
}
9.1.3. 실패: 존재하지 않는 프로세스
HTTP request
POST /v1/evaluations?processId=-1&applicantId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 93
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNSwiZXhwIjoxNzQ5NzA5MTM1fQ.13wIrDXI6nD3sui6tL4FELq4igipzdkk2Kqk-zXZuC0
{
"evaluator" : "김도엽",
"score" : 4,
"content" : "서류가 인상적입니다."
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
존재하지 않는 프로세스의 id |
|
지원자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
평가자 이름 |
|
|
평가 점수 |
|
|
평가 주관식 내용 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:55 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 159
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Process입니다.",
"instance" : "/v1/evaluations"
}
9.1.4. 실패: 조건에 맞지 않는 평가 점수
HTTP request
POST /v1/evaluations?processId=1&applicantId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 94
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
{
"evaluator" : "김도엽",
"score" : -4,
"content" : "서류가 인상적입니다."
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
프로세스의 id |
|
지원자의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
평가자 이름 |
|
|
적절하지 않은 평가 점수 |
|
|
평가 주관식 내용 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Connection: close
Content-Length: 186
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{score=평가 점수는 1 이상 5 이하의 정수입니다.}",
"instance" : "/v1/evaluations"
}
9.2. 평가 조회
9.2.1. 성공
HTTP request
GET /v1/evaluations?processId=1&applicantId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
프로세스의 id |
|
지원자의 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:55 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 205
{
"evaluations" : [ {
"evaluationId" : 1,
"evaluator" : "김도엽",
"score" : 5,
"content" : "서류가 인상 깊었습니다.",
"createdDate" : "2025-05-29T06:18:54.969022"
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
평가 목록 |
|
|
평가의 id |
|
|
평가자 이름 |
|
|
평가 점수 |
|
|
평가 내용 |
|
|
평가 생성 날짜 |
9.2.2. 실패: 존재하지 않는 지원자
HTTP request
GET /v1/evaluations?processId=1&applicantId=-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
프로세스의 id |
|
지원자의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 161
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/evaluations"
}
9.2.3. 실패: 존재하지 않는 프로세스
HTTP request
GET /v1/evaluations?processId=-1&applicantId=1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Query parameters
Parameter | Description |
---|---|
|
프로세스의 id |
|
지원자의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 159
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Process입니다.",
"instance" : "/v1/evaluations"
}
9.3. 평가 변경
9.3.1. 성공
HTTP request
PATCH /v1/evaluations/1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 93
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
{
"evaluator" : "김형호",
"score" : 2,
"content" : "맞춤법이 틀렸습니다."
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
평가의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
평가자 이름 |
|
|
평가 점수 |
|
|
평가 주관식 내용 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
9.3.2. 실패: 존재하지 않는 평가
HTTP request
PATCH /v1/evaluations/-1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 93
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNSwiZXhwIjoxNzQ5NzA5MTM1fQ.13wIrDXI6nD3sui6tL4FELq4igipzdkk2Kqk-zXZuC0
{
"evaluator" : "김형호",
"score" : 2,
"content" : "맞춤법이 틀렸습니다."
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 평가의 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:55 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 165
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Evaluation입니다.",
"instance" : "/v1/evaluations/-1"
}
9.3.3. 실패: 조건에 맞지 않는 평가 점수
HTTP request
PATCH /v1/evaluations/1 HTTP/1.1
Content-Type: application/json
Host: localhost:45581
Content-Length: 94
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNSwiZXhwIjoxNzQ5NzA5MTM1fQ.13wIrDXI6nD3sui6tL4FELq4igipzdkk2Kqk-zXZuC0
{
"evaluator" : "김형호",
"score" : -1,
"content" : "맞춤법이 틀렸습니다."
}
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
평가의 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
평가자 이름 |
|
|
적절하지 않은 평가 점수 |
|
|
평가 주관식 내용 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:18:55 GMT
Connection: close
Content-Length: 188
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{score=평가 점수는 1 이상 5 이하의 정수입니다.}",
"instance" : "/v1/evaluations/1"
}
9.4. 평가 삭제
9.4.1. 성공
HTTP request
DELETE /v1/evaluations/1 HTTP/1.1
Host: localhost:45581
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTUzNCwiZXhwIjoxNzQ5NzA5MTM0fQ.CzJwun8Wc6A88NS9oZT3E0-dDwU9OQCvwE4L33uxoOM
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
삭제할 평가 id |
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:18:53 GMT
Keep-Alive: timeout=60
Connection: keep-alive
10. 이메일
10.1. 이메일 발송 및 발송 내역 생성
10.1.1. 성공
HTTP request
POST /v1/emails/send HTTP/1.1
Content-Type: multipart/form-data; boundary="6RZmCPgQUy5trcDK7O7yrALn-_nBUU5"; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:46583
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1MSwiZXhwIjoxNzQ5NzA5MTUxfQ._uz8mrzMoD92VdtUhLWw4taSYoI4xY0Pxf-Is3f9Oow
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=clubId; filename=file
Content-Type: text/plain
1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=applicantIds; filename=file
Content-Type: text/plain
1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=subject; filename=file
Content-Type: text/plain
[우아한테크코스] 7기 최종 심사 결과 안내
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=content; filename=file
Content-Type: text/plain
우아한테크코스 합격을 진심으로 축하합니다!
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=files; filename=email_test.txt
Content-Type: application/octet-stream
이메일 발송 테스트용 파일
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request parts
Part | Description |
---|---|
|
발송 동아리 id |
|
수신자 id 목록 |
|
이메일 제목 |
|
이메일 본문 |
|
이메일 첨부 파일 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
10.1.2. 실패: 이메일 형식이 올바르지 않은 이메일 형식
HTTP request
POST /v1/emails/send HTTP/1.1
Content-Type: multipart/form-data; boundary="bMmyhOj303fiv5nnodsOS_BpVxBgLoImuY-"; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:46583
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1MiwiZXhwIjoxNzQ5NzA5MTUyfQ.ai4GH8X-3LynBJ_GtmHp5jhuFZY32StOXxDYwZHep-U
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=clubId; filename=file
Content-Type: text/plain
1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=applicantIds; filename=file
Content-Type: text/plain
-1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=subject; filename=file
Content-Type: text/plain
[우아한테크코스] 7기 최종 심사 결과 안내
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=content; filename=file
Content-Type: text/plain
우아한테크코스 합격을 진심으로 축하합니다!
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=files; filename=email_test.txt
Content-Type: application/octet-stream
이메일 발송 테스트용 파일
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request parts
Part | Description |
---|---|
|
발송 동아리 id |
|
적절하지 않은 수신자 id가 포함된 목록 |
|
이메일 제목 |
|
이메일 본문 |
|
이메일 첨부 파일 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 161
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/emails/send"
}
10.1.3. 실패: 존재하지 않는 동아리
HTTP request
POST /v1/emails/send HTTP/1.1
Content-Type: multipart/form-data; boundary="CtKFlcgcjvYnS3i_ALk_KBpm7nK7KLj5CKIPx"; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:46583
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1MiwiZXhwIjoxNzQ5NzA5MTUyfQ.ai4GH8X-3LynBJ_GtmHp5jhuFZY32StOXxDYwZHep-U
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=clubId; filename=file
Content-Type: text/plain
-1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=applicantIds; filename=file
Content-Type: text/plain
1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=subject; filename=file
Content-Type: text/plain
[우아한테크코스] 7기 최종 심사 결과 안내
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=content; filename=file
Content-Type: text/plain
우아한테크코스 합격을 진심으로 축하합니다!
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=files; filename=email_test.txt
Content-Type: application/octet-stream
이메일 발송 테스트용 파일
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Request parts
Part | Description |
---|---|
|
존재하지 않는 발송 동아리 id |
|
수신자 id 목록 |
|
이메일 제목 |
|
이메일 본문 |
|
이메일 첨부 파일 |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 156
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Club입니다.",
"instance" : "/v1/emails/send"
}
10.2. 이메일 인증 번호 발송
10.2.1. 성공
HTTP request
POST /v1/emails/verification-code HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 33
{
"email" : "email@email.com"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
인증 번호를 전송할 이메일 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
10.2.2. 실패: 이메일 형식이 올바르지 않은 이메일 형식
HTTP request
POST /v1/emails/verification-code HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 30
{
"email" : "invalidEmail"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
부적절한 이메일 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Connection: close
Content-Length: 180
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{email=must be a well-formed email address}",
"instance" : "/v1/emails/verification-code"
}
10.2.3. 실패: 이미 가입된 이메일
HTTP request
POST /v1/emails/verification-code HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 33
{
"email" : "dobby@email.com"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
이미 가입된 이메일 |
HTTP response
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 170
{
"type" : "about:blank",
"title" : "Conflict",
"status" : 409,
"detail" : "이미 가입된 이메일입니다.",
"instance" : "/v1/emails/verification-code"
}
10.3. 이메일 인증 확인
10.3.1. 성공
HTTP request
POST /v1/emails/verify-code HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 66
{
"email" : "email@email.com",
"verificationCode" : "123456"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
인증할 이메일 |
|
|
인증 번호 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
10.3.2. 실패: 이메일 형식이 올바르지 않은 이메일 형식
HTTP request
POST /v1/emails/verify-code HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 63
{
"email" : "invalidEmail",
"verificationCode" : "123456"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
부적절한 이메일 형식 |
|
|
인증 번호 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Connection: close
Content-Length: 174
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "{email=must be a well-formed email address}",
"instance" : "/v1/emails/verify-code"
}
10.3.3. 실패: 인증 번호가 없는 이메일
HTTP request
POST /v1/emails/verify-code HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 67
{
"email" : "no-code@mail.com",
"verificationCode" : "123456"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
인증 번호가 없는 이메일 |
|
|
인증 번호 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Connection: close
Content-Length: 193
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "인증 코드가 존재하지 않거나 만료되었습니다.",
"instance" : "/v1/emails/verify-code"
}
10.3.4. 실패: 인증 번호가 다른 이메일
HTTP request
POST /v1/emails/verify-code HTTP/1.1
Content-Type: application/json
Host: localhost:46583
Content-Length: 66
{
"email" : "email@email.com",
"verificationCode" : "654321"
}
Request fields
Path | Type | Description |
---|---|---|
|
|
인증할 이메일 |
|
|
적절하지 않은 인증 번호 |
HTTP response
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Connection: close
Content-Length: 193
{
"type" : "about:blank",
"title" : "Bad Request",
"status" : 400,
"detail" : "인증 코드가 존재하지 않거나 만료되었습니다.",
"instance" : "/v1/emails/verify-code"
}
10.4. 이메일 전송 내역 조회
10.4.1. 성공
HTTP request
GET /v1/emails/1/1 HTTP/1.1
Accept: application/json, application/javascript, text/javascript, text/json
Host: localhost:46583
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1MSwiZXhwIjoxNzQ5NzA5MTUxfQ._uz8mrzMoD92VdtUhLWw4taSYoI4xY0Pxf-Is3f9Oow
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
발송 동아리 id |
|
수신 지원자 id |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 265
{
"emailHistoryResponses" : [ {
"subject" : "[우아한테크코스] 7기 최종 심사 결과 안내",
"content" : "지원해주셔서 감사합니다. 불합격입니다.",
"createdDate" : "2025-05-29T06:19:11.794744",
"isSucceed" : true
} ]
}
Response fields
Path | Type | Description |
---|---|---|
|
|
이메일 응답들 |
|
|
이메일 제목 |
|
|
이메일 본문 |
|
|
전송 날짜 |
|
|
이메일 상태 (true, false) |
10.4.2. 실패: 존재하지 않는 동아리
HTTP request
GET /v1/emails/-1/1 HTTP/1.1
Host: localhost:46583
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1MiwiZXhwIjoxNzQ5NzA5MTUyfQ.ai4GH8X-3LynBJ_GtmHp5jhuFZY32StOXxDYwZHep-U
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
존재하지 않는 발송 동아리 id |
|
수신 지원자 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 156
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Club입니다.",
"instance" : "/v1/emails/-1/1"
}
10.4.3. 실패: 존재하지 않는 지원자
HTTP request
GET /v1/emails/1/-1 HTTP/1.1
Host: localhost:46583
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQURNSU4iLCJlbWFpbCI6ImFkbWluQGVtYWlsLmNvbSIsImlhdCI6MTc0ODQ5OTU1MSwiZXhwIjoxNzQ5NzA5MTUxfQ._uz8mrzMoD92VdtUhLWw4taSYoI4xY0Pxf-Is3f9Oow
Request cookies
Name | Description |
---|---|
|
사용자 토큰 |
Path parameters
Parameter | Description |
---|---|
|
발송 동아리 id |
|
존재하지 않는 수신 지원자 id |
HTTP response
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Thu, 29 May 2025 06:19:11 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 161
{
"type" : "about:blank",
"title" : "Not Found",
"status" : 404,
"detail" : "존재하지 않는 Applicant입니다.",
"instance" : "/v1/emails/1/-1"
}