커스텀 예외 코드
Code | Message |
---|---|
1000 |
요청 형식이 올바르지 않습니다. |
1001 |
해당 연도의 행사 기간이 이미 존재합니다. |
1002 |
올해의 이벤트 기간이 존재하지 않습니다. |
1003 |
이벤트 시작 일시 혹은 종료 일시가 올해를 벗어났습니다. |
2001 |
소셜 로그인 공급자로부터 유저 정보를 받아올 수 없습니다. |
2002 |
소셜 로그인 공급자로부터 인증 토큰을 받아올 수 없습니다. |
3000 |
접근할 수 없는 리소스입니다. |
3001 |
유효하지 않은 Refresh Token 입니다. |
3002 |
토큰 검증에 실패했습니다. |
3003 |
유효하지 않은 Access Token 입니다. |
13000 |
Notion 데이터를 가져오는데 실패했습니다. |
4000 |
유저 id 를 찾을 수 없습니다. |
4001 |
회원가입이 필요합니다. |
4002 |
유저 권한이 존재하지 않습니다. |
4003 |
학과가 존재하지 않습니다. |
4004 |
학과/학번 정보가 존재하지 않습니다. |
4005 |
회원 가입 이용이 불가능한 회원 유형입니다. |
4010 |
ID에 해당하는 인증 신청 정보가 존재하지 않습니다. |
4011 |
이미 인증 된 회원입니다. |
4100 |
회원 유형은 수정할 수 없습니다. |
4101 |
소속 또는 직책의 형식이 잘못되었습니다. |
77000 |
프로젝트를 찾을 수 없습니다. |
77001 |
프로젝트 썸네일을 찾을 수 없습니다 |
77002 |
프로젝트 포스터를 찾을 수 없습니다 |
77003 |
멤버 정보가 올바르지 않습니다. |
77004 |
기술 스택 정보가 올바르지 않습니다. |
77005 |
관심 표시한 프로젝트가 이미 존재합니다 |
77007 |
관심 표시한 프로젝트를 찾을 수 없습니다. |
77008 |
이미 좋아요 한 프로젝트입니다. |
77009 |
좋아요 표시한 프로젝트가 존재하지 않습니다 |
77010 |
댓글을 찾을 수 없습니다 |
77011 |
유저 정보가 일치하지 않습니다 |
78000 |
엑셀 행의 개수와 업로드한 이미지의 개수가 일치해야합니다. |
78001 |
썸네일 이미지 이름을 찾을 수 없습니다. |
78002 |
포스터 이미지 이름을 찾을 수 없습니다. |
78003 |
수상 내역의 한글 이름이 올바르지 않습니다. |
78004 |
프로젝트 종류의 한글 이름이 올바르지 않습니다. |
78005 |
프로젝트 분야의 한글 이름이 올바르지 않습니다. |
78006 |
모든 셀은 값이 있어야 합니다. |
78007 |
엑셀 형식이 올바르지 않습니다. |
78008 |
중복된 썸네일 이미지 이름이 존재합니다. |
78009 |
중복된 포스터 이미지 이름이 존재합니다. |
780010 |
프로젝트 년도는 숫자만 입력해야 합니다. |
780011 |
엑셀 파일을 열 수 없습니다. |
5000 |
파일 업로드를 실패했습니다. |
5001 |
파일 가져오기를 실패했습니다. |
5002 |
요청한 ID에 해당하는 파일이 존재하지 않습니다. |
5002 |
요청한 ID에 해당하는 파일이 존재하지 않습니다. |
5004 |
파일을 찾을 수 없습니다. |
10000 |
요청한 ID에 해당하는 공지사항이 존재하지 않습니다. |
11000 |
요청한 ID에 해당하는 이벤트가 존재하지 않습니다. |
8000 |
요청한 ID에 해당하는 문의가 존재하지 않습니다. |
8001 |
요청한 ID에 해당하는 문의 답변이 존재하지 않습니다. |
8002 |
이미 답변이 등록된 문의입니다. |
8003 |
해당 문의에 대한 권한이 없습니다. |
8200 |
해당 ID에 해당하는 잡페어 인터뷰가 없습니다. |
8400 |
해당 ID에 해당하는 대담 영상이 없습니다. |
8401 |
퀴즈 데이터가 존재하지 않습니다. |
8402 |
퀴즈 제출 데이터가 존재하지 않습니다. |
8601 |
이미 퀴즈의 정답을 모두 맞추었습니다. |
8801 |
이미 관심 리스트에 추가되었습니다. |
8802 |
이미 관심 리스트에 추가되어 있지 않습니다. |
8804 |
퀴즈 이벤트 참여 기간이 아닙니다. |
8805 |
대담 영상과 현재 이벤트 참여 연도가 일치하지 않습니다. |
8901 |
퀴즈 최대 시도 횟수를 초과하였습니다. |
71001 |
엑셀 파일이 주어진 클래스와 호환되지 않습니다. |
9001 |
요청한 ID에 해당하는 갤러리가 존재하지 않습니다. |
6000 |
요청한 ID에 해당하는 과제제안이 존재하지 않습니다. |
6001 |
요청한 ID에 해당하는 과제제안 답변이 존재하지 않습니다. |
인증 API
카카오 소셜 로그인 (POST /auth/login/kakao/)
HTTP request
GET /auth/login/kakao?code=codefromkakaologin HTTP/1.1
Host: localhost:8080
Query parameters
Parameter | Required | Description |
---|---|---|
|
true |
카카오 인가코드 |
HTTP response
HTTP/1.1 302 Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Set-Cookie: refresh-token=refresh_token; Path=/; Max-Age=604800; Expires=Thu, 5 Dec 2024 10:49:18 GMT; Secure; HttpOnly; SameSite=None
Set-Cookie: access-token=access_token; Path=/; Max-Age=604800; Expires=Thu, 5 Dec 2024 10:49:18 GMT; Secure; SameSite=None
Location: https://localhost:3000/login/kakao
Response fields
Snippet response-fields not found for operation::auth-controller-test/kakao-social-login
회원가입 (POST /auth/register)
HTTP request
POST /auth/register HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Content-Length: 289
Host: localhost:8080
Cookie: refresh-token=refresh_token
{
"name" : "stop-user",
"phoneNumber" : "010-1234-1234",
"userType" : "STUDENT",
"email" : "email@gmail.com",
"signUpSource" : "ad",
"studentInfo" : {
"department" : "소프트웨어학과",
"studentNumber" : "2021123123"
},
"division" : null,
"position" : null
}
Request cookies
Name | Description |
---|---|
|
갱신 토큰 |
Request headers
Name | Description |
---|---|
|
access token |
Request fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
유저 이름 |
|
|
true |
전화 번호 |
|
|
true |
회원 유형 |
|
|
true |
이메일 |
|
|
false |
가입 경로 |
|
|
true |
학과 |
|
|
true |
학번 |
|
|
false |
소속 |
|
|
false |
직책 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 86
{
"name" : "stop-user",
"email" : "email@email.com",
"phone" : "010-1234-1234"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
이름 |
|
|
true |
이메일 |
|
|
true |
전화번호 |
Access Token 재발급 (POST /auth/reissue)
HTTP request
POST /auth/reissue HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 45
{
"accessToken" : "reissued_access_token"
}
로그아웃 (POST /auth/logout)
HTTP request
POST /auth/logout HTTP/1.1
Authorization: access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Content-Type: application/x-www-form-urlencoded
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
파일 API
다중 파일 업로드 (POST /files)
HTTP request
POST /files HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=files; filename=첨부파일1.png
Content-Type: image/png
[BINARY DATA - PNG IMAGE CONTENT]
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=files; filename=첨부파일2.pdf
Content-Type: application/pdf
[BINARY DATA - PDF CONTENT]
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Request parts
Part | Description |
---|---|
|
업로드할 파일 리스트 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 446
[ {
"id" : 1,
"uuid" : "8cedc1bd-ce93-42f9-a8dc-2ab77db48c2b",
"name" : "첨부파일1.png",
"mimeType" : "image/png",
"createdAt" : "2024-11-28T19:49:19.746397",
"updatedAt" : "2024-11-28T19:49:19.746401"
}, {
"id" : 2,
"uuid" : "b5733f48-f03b-401a-87e2-0e13a474bb12",
"name" : "첨부파일2.pdf",
"mimeType" : "application/pdf",
"createdAt" : "2024-11-28T19:49:19.746425",
"updatedAt" : "2024-11-28T19:49:19.746427"
} ]
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
파일 ID |
|
|
true |
파일 UUID |
|
|
true |
파일 이름 |
|
|
true |
파일의 MIME 타입 |
|
|
true |
파일 생성일 |
|
|
true |
파일 수정일 |
파일 조회 (GET /files/{fileId})
HTTP request
GET /files/1 HTTP/1.1
Host: localhost:8080
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: image/png;charset=UTF-8
Content-Length: 33
[BINARY DATA - PNG IMAGE CONTENT]
프로젝트 일괄 등록 양식 다운로드 (GET /files/form/projects)
HTTP request
GET /files/form/projects HTTP/1.1
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Disposition: form-data; name="attachment"; filename="project_upload_form.xlsx"
Content-Type: application/octet-stream;charset=UTF-8
Content-Length: 19
project_upload_form
유저 API
로그인 유저 기본 정보 조회 (GET /users/me)
HTTP request
GET /users/me HTTP/1.1
Authorization: user_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 323
{
"id" : 1,
"name" : "이름",
"phone" : "010-1234-5678",
"email" : "student@g.skku.edu",
"userType" : "STUDENT",
"division" : null,
"position" : null,
"studentNumber" : "2000123456",
"departmentName" : "학과",
"createdAt" : "2024-11-28T19:49:21.977643",
"updatedAt" : "2024-11-28T19:49:21.977644"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
사용자 ID |
|
|
true |
사용자 이름 |
|
|
true |
사용자 전화번호 |
|
|
true |
사용자 이메일 |
|
|
true |
사용자 유형 |
|
|
false |
소속 |
|
|
false |
직책 |
|
|
false |
학번 |
|
|
false |
학과 이름 |
|
|
true |
생성일 |
|
|
true |
수정일 |
로그인 유저 기본 정보 수정 (PUT /users/me)
HTTP request
PUT /users/me HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: user_access_token
Content-Length: 195
Host: localhost:8080
Cookie: refresh-token=refresh_token
{
"name" : "이름",
"phoneNumber" : "010-1234-5678",
"email" : "student@g.skku.edu",
"division" : null,
"position" : null,
"studentNumber" : "2000123456",
"department" : "학과"
}
Request fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
이름 |
|
|
true |
전화번호 |
|
|
true |
이메일 |
|
|
false |
소속 |
|
|
false |
직책 |
|
|
false |
학번 |
|
|
false |
학과 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 323
{
"id" : 1,
"name" : "이름",
"phone" : "010-1234-5678",
"email" : "student@g.skku.edu",
"userType" : "STUDENT",
"division" : null,
"position" : null,
"studentNumber" : "2000123456",
"departmentName" : "학과",
"createdAt" : "2024-11-28T19:49:22.000494",
"updatedAt" : "2024-11-28T19:49:22.000495"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
사용자 ID |
|
|
true |
사용자 이름 |
|
|
true |
사용자 전화번호 |
|
|
true |
사용자 이메일 |
|
|
true |
사용자 유형 |
|
|
false |
소속 |
|
|
false |
직책 |
|
|
false |
학번 |
|
|
false |
학과 이름 |
|
|
true |
생성일 |
|
|
true |
수정일 |
유저 탈퇴 (DELETE /users/me)
HTTP request
DELETE /users/me HTTP/1.1
Authorization: user_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
유저 관심 프로젝트 리스트 조회 (GET /users/favorites/projects)
HTTP request
GET /users/favorites/projects HTTP/1.1
Authorization: user_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1204
[ {
"id" : 1,
"thumbnailInfo" : {
"id" : 1,
"uuid" : "썸네일 uuid 1",
"name" : "썸네일 파일 이름 1",
"mimeType" : "썸네일 mime 타입 1"
},
"projectName" : "프로젝트 이름 1",
"teamName" : "팀 이름 1",
"studentNames" : [ "학생 이름 1", "학생 이름 2" ],
"professorNames" : [ "교수 이름 1" ],
"projectType" : "STARTUP",
"projectCategory" : "BIG_DATA_ANALYSIS",
"awardStatus" : "FIRST",
"year" : 2023,
"likeCount" : 100,
"like" : false,
"bookMark" : false,
"url" : "프로젝트 URL",
"description" : "프로젝트 설명"
}, {
"id" : 2,
"thumbnailInfo" : {
"id" : 2,
"uuid" : "썸네일 uuid 2",
"name" : "썸네일 파일 이름 2",
"mimeType" : "썸네일 mime 타입 2"
},
"projectName" : "프로젝트 이름 2",
"teamName" : "팀 이름 2",
"studentNames" : [ "학생 이름 3", "학생 이름 4" ],
"professorNames" : [ "교수 이름 2" ],
"projectType" : "LAB",
"projectCategory" : "AI_MACHINE_LEARNING",
"awardStatus" : "SECOND",
"year" : 2023,
"likeCount" : 100,
"like" : false,
"bookMark" : true,
"url" : "프로젝트 URL",
"description" : "프로젝트 설명"
} ]
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
프로젝트 ID |
|
|
true |
썸네일 정보 |
|
|
true |
썸네일 ID |
|
|
true |
썸네일 UUID |
|
|
true |
썸네일 파일 이름 |
|
|
true |
썸네일 MIME 타입 |
|
|
true |
프로젝트 이름 |
|
|
true |
팀 이름 |
|
|
true |
학생 이름 |
|
|
true |
교수 이름 |
|
|
true |
프로젝트 타입: RESEARCH_AND_BUSINESS_FOUNDATION, LAB, STARTUP, CLUB |
|
|
true |
프로젝트 카테고리: COMPUTER_VISION, SYSTEM_NETWORK, WEB_APPLICATION, SECURITY_SOFTWARE_ENGINEERING, NATURAL_LANGUAGE_PROCESSING, BIG_DATA_ANALYSIS, AI_MACHINE_LEARNING, INTERACTION_AUGMENTED_REALITY |
|
|
true |
수상 여부: NONE, FIRST, SECOND, THIRD, FOURTH, FIFTH |
|
|
true |
프로젝트 년도 |
|
|
true |
좋아요 수 |
|
|
true |
좋아요 여부 |
|
|
true |
북마크 여부 |
|
|
true |
프로젝트 URL |
|
|
true |
프로젝트 설명 |
유저 관심 대담영상 리스트 조회 (GET /users/favorites/talks)
HTTP request
GET /users/favorites/talks HTTP/1.1
Authorization: user_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 982
[ {
"id" : 1,
"title" : "제목1",
"youtubeId" : "유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "대담자 소속1",
"talkerName" : "대담자 성명1",
"favorite" : true,
"quiz" : [ {
"question" : "질문1",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
}, {
"question" : "질문2",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
} ],
"createdAt" : "2024-11-28T19:49:21.961699",
"updatedAt" : "2024-11-28T19:49:21.9617"
}, {
"id" : 2,
"title" : "제목2",
"youtubeId" : "유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "대담자 소속2",
"talkerName" : "대담자 성명2",
"favorite" : true,
"quiz" : [ {
"question" : "질문1",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
}, {
"question" : "질문2",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
} ],
"createdAt" : "2024-11-28T19:49:21.961706",
"updatedAt" : "2024-11-28T19:49:21.961707"
} ]
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
대담 영상 ID |
|
|
true |
대담 영상 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
대담 영상 연도 |
|
|
true |
대담자의 소속된 직장/단체 |
|
|
true |
대담자의 성명 |
|
|
true |
관심한 대담영상의 여부 |
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
|
|
true |
대담 영상 생성일 |
|
|
true |
대담 영상 수정일 |
유저 관심 잡페어인터뷰영상 리스트 조회 (GET /users/favorites/jobInterviews)
HTTP request
GET /users/favorites/jobInterviews HTTP/1.1
Authorization: user_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 690
[ {
"id" : 1,
"title" : "잡페어 인터뷰의 제목1",
"youtubeId" : "유튜브 고유 ID1",
"year" : 2023,
"talkerBelonging" : "대담자의 소속1",
"talkerName" : "대담자의 성명1",
"favorite" : false,
"category" : "INTERN",
"createdAt" : "2024-11-28T19:49:21.953649",
"updatedAt" : "2024-11-28T19:49:21.95365"
}, {
"id" : 2,
"title" : "잡페어 인터뷰의 제목2",
"youtubeId" : "유튜브 고유 ID2",
"year" : 2024,
"talkerBelonging" : "대담자의 소속2",
"talkerName" : "대담자의 성명2",
"favorite" : true,
"category" : "INTERN",
"createdAt" : "2024-11-28T19:49:21.953664",
"updatedAt" : "2024-11-28T19:49:21.953665"
} ]
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
잡페어 인터뷰 ID |
|
|
true |
잡페어 인터뷰 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
잡페어 인터뷰 연도 |
|
|
true |
잡페어 인터뷰 대담자의 소속 |
|
|
true |
잡페어 인터뷰 대담자의 성명 |
|
|
true |
관심에 추가한 잡페어 인터뷰 여부 |
|
|
true |
잡페어 인터뷰 카테고리: SENIOR, INTERN |
|
|
true |
잡페어 인터뷰 생성일 |
|
|
true |
잡페어 인터뷰 수정일 |
유저 문의 리스트 조회 (GET /users/inquiries)
HTTP request
GET /users/inquiries HTTP/1.1
Authorization: user_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 257
[ {
"id" : 1,
"title" : "Title 1",
"projectId" : 1,
"createdDate" : "2024-11-28T19:49:21.971752",
"hasReply" : true
}, {
"id" : 2,
"title" : "Title 2",
"projectId" : 2,
"createdDate" : "2024-11-28T19:49:21.971758",
"hasReply" : false
} ]
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
문의 ID |
|
|
true |
문의 제목 |
|
|
true |
프로젝트 ID |
|
|
true |
문의 생성일 |
|
|
true |
답변 여부 |
유저 과제 제안 리스트 조회 (GET /users/proposals)
HTTP request
GET /users/proposals HTTP/1.1
Authorization: user_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 219
[ {
"id" : 1,
"title" : "Title 1",
"createdDate" : "2024-11-28T19:49:21.983617",
"hasReply" : true
}, {
"id" : 2,
"title" : "Title 2",
"createdDate" : "2024-11-28T19:49:21.983623",
"hasReply" : false
} ]
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
과제 제안 ID |
|
|
true |
프로젝트명 |
|
|
true |
과제 제안 생성일 |
|
|
true |
답변 여부 |
학과 API
학과 리스트 조회 (GET /departments)
HTTP request
GET /departments HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 92
[ {
"id" : 1,
"name" : "소프트웨어학과"
}, {
"id" : 2,
"name" : "학과2"
} ]
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
학과 ID |
|
|
true |
학과 이름 |
가입 신청 관리 API
가입 신청 리스트 조회 (GET /applications)
HTTP request
GET /applications HTTP/1.1
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Query parameters
Parameter | Required | Description |
---|---|---|
|
false |
페이지 번호 [default: 0] |
|
false |
페이지 크기 [default: 10] |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1178
{
"totalPages" : 1,
"totalElements" : 3,
"first" : true,
"last" : true,
"size" : 10,
"content" : [ {
"id" : 1,
"name" : "김영한",
"division" : "배민",
"position" : null,
"userType" : "INACTIVE_COMPANY",
"createdAt" : "2024-11-28T19:49:21.620883",
"updatedAt" : "2024-11-28T19:49:21.620885"
}, {
"id" : 2,
"name" : "김교수",
"division" : "솦융대",
"position" : "교수",
"userType" : "INACTIVE_PROFESSOR",
"createdAt" : "2024-11-28T19:49:21.620894",
"updatedAt" : "2024-11-28T19:49:21.620895"
}, {
"id" : 3,
"name" : "박교수",
"division" : "정통대",
"position" : "교수",
"userType" : "INACTIVE_PROFESSOR",
"createdAt" : "2024-11-28T19:49:21.620897",
"updatedAt" : "2024-11-28T19:49:21.620897"
} ],
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 3,
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"empty" : false
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
페이지 정보 |
|
|
true |
현재 페이지 번호 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
오프셋 |
|
|
true |
페이징된 여부 |
|
|
true |
페이징되지 않은 여부 |
|
|
true |
전체 요소 수 |
|
|
true |
전체 페이지 수 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
현재 페이지 번호 |
|
|
true |
현재 페이지 요소 수 |
|
|
true |
첫 페이지 여부 |
|
|
true |
마지막 페이지 여부 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
비어있는 페이지 여부 |
|
|
true |
가입 신청 ID |
|
|
true |
가입 신청자 이름 |
|
|
false |
소속 |
|
|
false |
직책 |
|
|
true |
회원 유형 [INACTIVE_PROFESSOR, INACTIVE_COMPANY] |
|
|
true |
가입 신청 정보 생성일 |
|
|
true |
가입 신청 정보 수정일 |
가입 신청자 상세 정보 조회 (GET /applications/{applicationId})
HTTP request
GET /applications/1 HTTP/1.1
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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
Content-Length: 272
{
"id" : 1,
"name" : "김영한",
"phone" : "010-1111-2222",
"email" : "email@gmail.com",
"division" : "배민",
"position" : "CEO",
"userType" : "INACTIVE_COMPANY",
"createdAt" : "2024-11-28T19:49:21.643274",
"updatedAt" : "2024-11-28T19:49:21.643275"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
가입 신청 ID |
|
|
true |
가입 신청자 이름 |
|
|
true |
가입 신청자 전화번호 |
|
|
true |
가입 신청자 이메일 |
|
|
false |
소속 |
|
|
false |
직책 |
|
|
true |
회원 유형 [INACTIVE_PROFESSOR, INACTIVE_COMPANY] |
|
|
true |
가입 신청 정보 생성일 |
|
|
true |
가입 신청 정보 수정일 |
교수/기업 가입 허가 (PATCH /applications/{applicationId})
HTTP request
PATCH /applications/1 HTTP/1.1
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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
Content-Length: 262
{
"id" : 1,
"name" : "김영한",
"phone" : "010-1111-2222",
"email" : "email@gmail.com",
"division" : "배민",
"position" : "CEO",
"userType" : "COMPANY",
"createdAt" : "2024-11-28T19:49:21.637588",
"updatedAt" : "2024-11-28T19:49:21.63759"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
가입 신청 ID |
|
|
true |
가입 신청자 이름 |
|
|
true |
가입 신청자 전화번호 |
|
|
true |
가입 신청자 이메일 |
|
|
false |
소속 |
|
|
false |
직책 |
|
|
true |
회원 유형 [PROFESSOR, COMPANY] |
|
|
true |
가입 신청 정보 생성일 |
|
|
true |
가입 신청 정보 수정일 |
교수/기업 가입 거절 (DELETE /applications/{applicationId})
HTTP request
DELETE /applications/1 HTTP/1.1
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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
잡페어 인터뷰 API
잡페어 인터뷰 생성 (POST /jobInterviews)
HTTP request
POST /jobInterviews HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: admin_access_token
Content-Length: 213
Host: localhost:8080
Cookie: refresh-token=refresh_token
{
"title" : "잡페어 인터뷰의 제목",
"youtubeId" : "유튜브 고유 ID",
"year" : 2024,
"talkerBelonging" : "대담자의 소속",
"talkerName" : "대담자의 성명",
"category" : "INTERN"
}
Request fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
잡페어 인터뷰 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
잡페어 인터뷰 연도 |
|
|
true |
잡페어 인터뷰 대담자의 소속 |
|
|
true |
잡페어 인터뷰 대담자의 성명 |
|
|
true |
잡페어 인터뷰 카테고리: SENIOR, INTERN |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 317
{
"id" : 1,
"title" : "잡페어 인터뷰의 제목",
"youtubeId" : "유튜브 고유 ID",
"year" : 2024,
"talkerBelonging" : "대담자의 소속",
"talkerName" : "대담자의 성명",
"category" : "INTERN",
"createdAt" : "2024-11-28T19:49:22.247595",
"updatedAt" : "2024-11-28T19:49:22.247596"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
잡페어 인터뷰 ID |
|
|
true |
잡페어 인터뷰 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
잡페어 인터뷰 연도 |
|
|
true |
잡페어 인터뷰 대담자의 소속 |
|
|
true |
잡페어 인터뷰 대담자의 성명 |
|
|
true |
잡페어 인터뷰 카테고리: SENIOR, INTERN |
|
|
true |
잡페어 인터뷰 생성일 |
|
|
true |
잡페어 인터뷰 수정일 |
잡페어 인터뷰 리스트 조회 (GET /jobInterviews)
HTTP request
GET /jobInterviews HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: optional_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Query parameters
Parameter | Required | Description |
---|---|---|
|
false |
찾고자 하는 잡페어 인터뷰 연도 |
|
false |
찾고자 하는 잡페어 인터뷰 카테고리: SENIOR, INTERN |
|
false |
찾고자 하는 잡페어 인터뷰의 제목 |
|
false |
페이지 번호 [default: 0] |
|
false |
페이지 크기 [default: 10] |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1206
{
"totalPages" : 1,
"totalElements" : 2,
"first" : true,
"last" : true,
"size" : 10,
"content" : [ {
"id" : 1,
"title" : "잡페어 인터뷰의 제목1",
"youtubeId" : "유튜브 고유 ID1",
"year" : 2023,
"talkerBelonging" : "대담자의 소속1",
"talkerName" : "대담자의 성명1",
"favorite" : false,
"category" : "INTERN",
"createdAt" : "2024-11-28T19:49:22.228935",
"updatedAt" : "2024-11-28T19:49:22.228936"
}, {
"id" : 2,
"title" : "잡페어 인터뷰의 제목2",
"youtubeId" : "유튜브 고유 ID2",
"year" : 2024,
"talkerBelonging" : "대담자의 소속2",
"talkerName" : "대담자의 성명2",
"favorite" : true,
"category" : "INTERN",
"createdAt" : "2024-11-28T19:49:22.228941",
"updatedAt" : "2024-11-28T19:49:22.228941"
} ],
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"empty" : false
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
페이지 정보 |
|
|
true |
현재 페이지 번호 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
오프셋 |
|
|
true |
페이징된 여부 |
|
|
true |
페이징되지 않은 여부 |
|
|
true |
전체 요소 수 |
|
|
true |
전체 페이지 수 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
현재 페이지 번호 |
|
|
true |
현재 페이지 요소 수 |
|
|
true |
첫 페이지 여부 |
|
|
true |
마지막 페이지 여부 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
비어있는 페이지 여부 |
|
|
true |
잡페어 인터뷰 ID |
|
|
true |
잡페어 인터뷰 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
잡페어 인터뷰 연도 |
|
|
true |
잡페어 인터뷰 대담자의 소속 |
|
|
true |
잡페어 인터뷰 대담자의 성명 |
|
|
true |
관심에 추가한 잡페어 인터뷰 여부 |
|
|
true |
잡페어 인터뷰 카테고리: SENIOR, INTERN |
|
|
true |
잡페어 인터뷰 생성일 |
|
|
true |
잡페어 인터뷰 수정일 |
잡페어 인터뷰 단건 조회 (GET /jobInterviews/{jobInterviewId})
HTTP request
GET /jobInterviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: optional_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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;charset=UTF-8
Content-Length: 339
{
"id" : 1,
"title" : "잡페어 인터뷰의 제목",
"youtubeId" : "유튜브 고유 ID",
"year" : 2024,
"talkerBelonging" : "대담자의 소속",
"talkerName" : "대담자의 성명",
"favorite" : false,
"category" : "INTERN",
"createdAt" : "2024-11-28T19:49:22.240617",
"updatedAt" : "2024-11-28T19:49:22.240618"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
잡페어 인터뷰 ID |
|
|
true |
잡페어 인터뷰 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
잡페어 인터뷰 연도 |
|
|
true |
잡페어 인터뷰 대담자의 소속 |
|
|
true |
잡페어 인터뷰 대담자의 성명 |
|
|
true |
관심에 추가한 잡페어 인터뷰 여부 |
|
|
true |
잡페어 인터뷰 카테고리: SENIOR, INTERN |
|
|
true |
잡페어 인터뷰 생성일 |
|
|
true |
잡페어 인터뷰 수정일 |
잡페어 인터뷰 수정 (PUT /jobInterviews/{jobInterviewId})
HTTP request
PUT /jobInterviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: admin_access_token
Content-Length: 217
Host: localhost:8080
Cookie: refresh-token=refresh_token
{
"title" : "수정된 제목",
"youtubeId" : "수정된 유튜브 ID",
"year" : 2024,
"talkerBelonging" : "수정된 대담자 소속",
"talkerName" : "수정된 대담자 성명",
"category" : "INTERN"
}
Path parameters
Parameter | Description |
---|---|
|
수정할 잡페어 인터뷰의 ID |
Request fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
잡페어 인터뷰 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
잡페어 인터뷰 연도 |
|
|
true |
잡페어 인터뷰 대담자의 소속 |
|
|
true |
잡페어 인터뷰 대담자의 성명 |
|
|
true |
잡페어 인터뷰 카테고리: SENIOR, INTERN |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 314
{
"id" : 1,
"title" : "수정된 제목",
"youtubeId" : "수정된 유튜브 ID",
"year" : 2024,
"talkerBelonging" : "수정된 대담자 소속",
"talkerName" : "수정된 대담자 성명",
"category" : "INTERN",
"createdAt" : "2021-01-01T12:00:00",
"updatedAt" : "2024-11-28T19:49:22.208502"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
잡페어 인터뷰 ID |
|
|
true |
잡페어 인터뷰 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
잡페어 인터뷰 연도 |
|
|
true |
잡페어 인터뷰 대담자의 소속 |
|
|
true |
잡페어 인터뷰 대담자의 성명 |
|
|
true |
잡페어 인터뷰 카테고리: SENIOR, INTERN |
|
|
true |
잡페어 인터뷰 생성일 |
|
|
true |
잡페어 인터뷰 수정일 |
잡페어 인터뷰 삭제 (DELETE /jobInterviews/{jobInterviewId})
HTTP request
DELETE /jobInterviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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
잡페어 인터뷰 관심 등록 (POST /jobInterviews/{jobInterviews}/favorite)
HTTP request
POST /jobInterviews/1/favorite HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Path parameters
Parameter | Description |
---|---|
|
관심 목록에 추가할 잡페어 인터뷰의 ID |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
잡페어 인터뷰 관심 삭제 (DELETE /jobInterviews/{jobInterviews}/favorite)
HTTP request
DELETE /jobInterviews/1/favorite HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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
대담 영상 API
대담 영상 생성 (POST /talks)
HTTP request
POST /talks HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: admin_access_token
Content-Length: 361
Host: localhost:8080
Cookie: refresh-token=refresh_token
{
"title" : "제목",
"youtubeId" : "유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "대담자 소속",
"talkerName" : "대담자 성명",
"quiz" : [ {
"question" : "질문1",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
}, {
"question" : "질문2",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
} ]
}
Request fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
대담 영상 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
대담 영상 연도 |
|
|
true |
대담자의 소속된 직장/단체 |
|
|
true |
대담자의 성명 |
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 465
{
"id" : 1,
"title" : "제목",
"youtubeId" : "유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "대담자 소속",
"talkerName" : "대담자 성명",
"quiz" : [ {
"question" : "질문1",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
}, {
"question" : "질문2",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
} ],
"createdAt" : "2024-11-28T19:49:22.817542",
"updatedAt" : "2024-11-28T19:49:22.817543"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
대담 영상 ID |
|
|
true |
대담 영상 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
대담 영상 연도 |
|
|
true |
대담자의 소속된 직장/단체 |
|
|
true |
대담자의 성명 |
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
|
|
true |
대담 영상 생성일 |
|
|
true |
대담 영상 수정일 |
대담 영상 리스트 조회 (GET /talks)
HTTP request
GET /talks HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: optional_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Query parameters
Parameter | Required | Description |
---|---|---|
|
false |
찾고자 하는 대담 영상의 연도 |
|
false |
찾고자 하는 대담 영상의 제목 일부 |
|
false |
페이지 번호 [default: 0] |
|
false |
페이지 크기 [default: 10] |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 999
{
"totalPages" : 1,
"totalElements" : 1,
"first" : true,
"last" : true,
"size" : 10,
"content" : [ {
"id" : 1,
"title" : "제목",
"youtubeId" : "유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "대담자 소속",
"talkerName" : "대담자 성명",
"favorite" : true,
"quiz" : [ {
"question" : "질문1",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
}, {
"question" : "질문2",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
} ],
"createdAt" : "2024-11-28T19:49:22.824681",
"updatedAt" : "2024-11-28T19:49:22.824682"
} ],
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 1,
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"empty" : false
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
페이지 정보 |
|
|
true |
현재 페이지 번호 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
오프셋 |
|
|
true |
페이징된 여부 |
|
|
true |
페이징되지 않은 여부 |
|
|
true |
전체 요소 수 |
|
|
true |
전체 페이지 수 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
현재 페이지 번호 |
|
|
true |
현재 페이지 요소 수 |
|
|
true |
첫 페이지 여부 |
|
|
true |
마지막 페이지 여부 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
비어있는 페이지 여부 |
|
|
true |
대담 영상 ID |
|
|
true |
대담 영상 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
대담 영상 연도 |
|
|
true |
대담자의 소속된 직장/단체 |
|
|
true |
대담자의 성명 |
|
|
true |
관심한 대담영상의 여부 |
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
|
|
true |
대담 영상 생성일 |
|
|
true |
대담 영상 수정일 |
대담 영상 단건 조회 (GET /talks/{talkId})
HTTP request
GET /talks/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: optional_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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;charset=UTF-8
Content-Length: 486
{
"id" : 1,
"title" : "제목",
"youtubeId" : "유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "대담자 소속",
"talkerName" : "대담자 성명",
"favorite" : true,
"quiz" : [ {
"question" : "질문1",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
}, {
"question" : "질문2",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
} ],
"createdAt" : "2024-11-28T19:49:22.809931",
"updatedAt" : "2024-11-28T19:49:22.809933"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
대담 영상 ID |
|
|
true |
대담 영상 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
대담 영상 연도 |
|
|
true |
대담자의 소속된 직장/단체 |
|
|
true |
대담자의 성명 |
|
|
true |
관심한 대담영상의 여부 |
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
|
|
true |
대담 영상 생성일 |
|
|
true |
대담 영상 수정일 |
대담 영상 수정 (PUT /talks/{talkId})
HTTP request
PUT /talks/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: admin_access_token
Content-Length: 461
Host: localhost:8080
Cookie: refresh-token=refresh_token
{
"title" : "수정한 제목",
"youtubeId" : "수정한 유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "수정한 대담자 소속",
"talkerName" : "수정한 대담자 성명",
"quiz" : [ {
"question" : "수정한 질문1",
"answer" : 0,
"options" : [ "수정한 선지1", "수정한 선지2" ]
}, {
"question" : "수정한 질문2",
"answer" : 0,
"options" : [ "수정한 선지1", "수정한 선지2" ]
} ]
}
Path parameters
Parameter | Description |
---|---|
|
수정할 대담 영상의 ID |
Request fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
대담 영상 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
대담 영상 연도 |
|
|
true |
대담자의 소속된 직장/단체 |
|
|
true |
대담자의 성명 |
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 565
{
"id" : 1,
"title" : "수정한 제목",
"youtubeId" : "수정한 유튜브 고유ID",
"year" : 2024,
"talkerBelonging" : "수정한 대담자 소속",
"talkerName" : "수정한 대담자 성명",
"quiz" : [ {
"question" : "수정한 질문1",
"answer" : 0,
"options" : [ "수정한 선지1", "수정한 선지2" ]
}, {
"question" : "수정한 질문2",
"answer" : 0,
"options" : [ "수정한 선지1", "수정한 선지2" ]
} ],
"createdAt" : "2024-11-28T19:49:22.777287",
"updatedAt" : "2024-11-28T19:49:22.777288"
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
대담 영상 ID |
|
|
true |
대담 영상 제목 |
|
|
true |
유튜브 영상의 고유 ID |
|
|
true |
대담 영상 연도 |
|
|
true |
대담자의 소속된 직장/단체 |
|
|
true |
대담자의 성명 |
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
|
|
true |
대담 영상 생성일 |
|
|
true |
대담 영상 수정일 |
대담 영상 삭제 (DELETE /talks/{talkId})
HTTP request
DELETE /talks/1 HTTP/1.1
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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
대담 영상의 퀴즈 조회 (GET /talks/{talkId}/quiz)
HTTP request
GET /talks/1/quiz HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: localhost:8080
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;charset=UTF-8
Content-Length: 205
{
"quiz" : [ {
"question" : "질문1",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
}, {
"question" : "질문2",
"answer" : 0,
"options" : [ "선지1", "선지2" ]
} ]
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
false |
퀴즈 데이터, 없는경우 null |
|
|
false |
퀴즈 1개의 질문 |
|
|
false |
퀴즈 1개의 정답선지 인덱스 |
|
|
false |
퀴즈 1개의 정답선지 리스트 |
대담 영상의 퀴즈 결과 제출 (POST /talks/{talkId}/quiz)
HTTP request
POST /talks/1/quiz HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Content-Length: 47
Host: localhost:8080
Cookie: refresh-token=refresh_token
{
"result" : {
"0" : 0,
"1" : 1
}
}
Path parameters
Parameter | Description |
---|---|
|
퀴즈를 제출할 대담 영상의 ID |
Request fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
퀴즈를 푼 결과 |
|
|
true |
퀴즈 각 문제별 정답 인덱스, key는 문제 번호 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 40
{
"success" : true,
"tryCount" : 1
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
퀴즈 성공 여부 |
|
|
true |
퀴즈 시도 횟수 |
대담 영상의 관심 등록 (POST /talks/{talkId}/favorite)
HTTP request
POST /talks/1/favorite HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Path parameters
Parameter | Description |
---|---|
|
관심 목록에 추가할 대담 영상의 ID |
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
대담 영상의 관심 삭제 (DELETE /talks/{talkId}/favorite)
HTTP request
DELETE /talks/1/favorite HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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
유저의 퀴즈 제출 기록 조회 (GET /talks/{talkId/quiz/submit)
HTTP request
GET /talks/1/quiz/submit HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
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;charset=UTF-8
Content-Length: 41
{
"success" : false,
"tryCount" : 2
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
시도한 횟수 |
|
|
true |
퀴즈 성공 여부 |
퀴즈 결과 API
퀴즈 결과 조회 (GET /quizzes/result)
HTTP request
GET /quizzes/result HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Query parameters
Parameter | Required | Description |
---|---|---|
|
false |
찾고자 하는 퀴즈 푼 문제의 연도 |
|
false |
페이지 번호 [default: 0] |
|
false |
페이지 크기 [default: 10] |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 739
{
"totalPages" : 1,
"totalElements" : 2,
"first" : true,
"last" : true,
"size" : 10,
"content" : [ {
"userId" : 1,
"name" : "name",
"phone" : "010-1111-1111",
"email" : "scg@scg.skku.ac.kr",
"successCount" : 3
}, {
"userId" : 2,
"name" : "name2",
"phone" : "010-0000-1234",
"email" : "iam@2tle.io",
"successCount" : 1
} ],
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"numberOfElements" : 2,
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"empty" : false
}
Response fields
Name | Type | Required | Description |
---|---|---|---|
|
|
true |
페이지 정보 |
|
|
true |
현재 페이지 번호 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
오프셋 |
|
|
true |
페이징된 여부 |
|
|
true |
페이징되지 않은 여부 |
|
|
true |
전체 요소 수 |
|
|
true |
전체 페이지 수 |
|
|
true |
페이지 당 요소 수 |
|
|
true |
현재 페이지 번호 |
|
|
true |
현재 페이지 요소 수 |
|
|
true |
첫 페이지 여부 |
|
|
true |
마지막 페이지 여부 |
|
|
true |
정렬 정보가 비어있는지 여부 |
|
|
true |
정렬되지 않은 상태인지 여부 |
|
|
true |
정렬된 상태인지 여부 |
|
|
true |
비어있는 페이지 여부 |
|
|
true |
유저의 아이디 |
|
|
true |
유저의 이름 |
|
|
true |
유저의 연락처 |
|
|
true |
유저의 이메일 |
|
|
true |
유저가 퀴즈를 성공한 횟수의 합 |
퀴즈 결과를 엑셀로 받기 (GET /quizzes/result/excel)
HTTP request
GET /quizzes/result/excel HTTP/1.1
Content-Type: application/octet-stream;charset=UTF-8
Authorization: admin_access_token
Host: localhost:8080
Cookie: refresh-token=refresh_token
Query parameters
Parameter | Required | Description |
---|---|---|
|
false |
찾고자 하는 퀴즈 푼 문제의 연도, 기본값 올해 |
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/octet-stream;charset=UTF-8
Content-Disposition: attachment; filename=excel.xlsx
Content-Length: 2821
PK- [Content_Types].xml�S�n1��U��&����X8�ql�J?�M��y)1��^�RT�S��xfl%��ڻj���q+G� ���k����~U!\؈�t2�o��[CiDO��*�GEƄ��6f�e�T����ht�t��j4�d��-,UO��A�����S�U0G��^Pft[N�m*7L�˚Uv�0Z�:��q�������E�mk5����[$�M�23Y��A�7�,��<c�(���x֢cƳ�E�GӖ�L��;Yz�h>(�c�b��/�s�Ɲ��`�\s|J6�r��y���௶�j�PK�q,- � PK- _rels/.rels���j�0�_���8�`�Q��2�m��4[ILb��ږ���.[K
�($}��v?�I�Q.���uӂ�h���x>=��@��p�H"�~�}� �n����*"�H������8�Z�^'�#��7m{��O�3���G�u�ܓ�'��y|a�����D� ��l_EYȾ� ���vql3�ML�eh���*���\3�Y0���oJ� :��^��}PK��z�� I PK- docProps/app.xmlM��
�0D�~EȽ��ADҔ���A? ��6�lB�J?ߜ���0���ͯ�)�@��H6���V>��$;�SC
;̢(�ra�g�l�&�e��L!y�%��49��`_���4G���F��J��Wg
�GS�b����
~�PK�|wؑ � PK- docProps/core.xmlm�]K�0��J�}{�n�m�(Aq�D�.$Ƕ�|�D;��i�Ի$�sN�j{�yGzkj��4Ҫ5}8�
%!
��`
��X�m*鸴��:���@��.]M��C-B���뵈��[pB���,�3��Q�$��b�'���ҽ�a( 8�F���������,�1�5�c>�f.m�����~^>���u���Nj.=���$�.5�<�.�;ڔE����́|}���_���l}s�
���'ny��O��'PKqBj � PK- xl/sharedStrings.xml=�A� ツ��.z0Ɣ�`������,�����q2��o�ԇ���N�E��x5�z>�W���(R�K���^4{�����ŀ�5��y�V����y�m�XV�\�.�j����
8� PKp��&x � PK-
xl/styles.xml���n� ��>bop2TQ��P)U�RWb�6*�����ӤS�Nw�s���3ߍ���t��(l��������ҝx�!N=@$ɀ��}��3c���ʰr`:i��2��w,�
�d
�T��R#�voc �;c�iE��Û��E<|��4Iɣ����F#��n���B�z�F���y�j3y��yҥ�jt>���2��Lژ�!6��2F�OY��4@M�!���G��������1�t��y��p��" n����u�����a�ΦDi�9�&#��%I��9��}���cK��T��$?������`J������7���o��f��M|PK�1X@C � PK- xl/workbook.xmlM���0��>E�wi1ƨ����z/�HmI�_j��qf��)ʧٌ��w�L C��ָ��[u��T�b�a��؊;���8�9��G�)��5�|�:�2<8MuK=b�#� q�V�u
����K��H\)�\�&�t͌��%���?��B��T�PK �� � PK- xl/_rels/workbook.xml.rels��ͪ1�_�d�tt!"V7�n�� ����LZ�(����r����p����6�JY���U
����s����;[�E8D&a��h@-
��$� Xt�im���F�*&�41���̭M��ؒ]����WL�f�}��9anIH���Qs1���KtO��ll���O���X߬� �{�ŋ����œ�?o'�>