문제집 API
문제집 전체 보기
요청
GET /api/workbooks HTTP/1.1
Authorization: Bearer botobo.access.token
Host: botobo.r-e.kr
응답
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 263
[ {
"id" : 1,
"name" : "피케이의 자바 문제 20선",
"cardCount" : 20
}, {
"id" : 2,
"name" : "오즈의 비올 때 푸는 Database 문제",
"cardCount" : 15
}, {
"id" : 3,
"name" : "조앤의 Network 정복 모음집",
"cardCount" : 8
} ]
문제집별 카드 모아보기
요청
GET /api/workbooks/1/cards HTTP/1.1
Authorization: Bearer botobo.access.token
Host: botobo.r-e.kr
응답
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 357
{
"workbookName" : "Java",
"cards" : [ {
"id" : 1,
"question" : "Java에는 a가 몇 개 들어갈까요?",
"answer" : "2개"
}, {
"id" : 2,
"question" : "Java에는 v가 몇 개 들어갈까요?",
"answer" : "1개"
}, {
"id" : 3,
"question" : "Java에는 j가 몇 개 들어갈까요?",
"answer" : "1개"
} ]
}
카드 API
또 보기 카드 선택하기
요청
PUT /api/cards/next-quiz HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer botobo.access.token
Accept: application/json
Content-Length: 29
Host: botobo.r-e.kr
{
"cardIds" : [ 1, 2, 3 ]
}
응답
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
퀴즈 API
퀴즈 생성하기
요청
POST /api/quizzes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer botobo.access.token
Accept: application/json
Content-Length: 33
Host: botobo.r-e.kr
{
"workbookIds" : [ 1, 2, 3 ]
}
응답
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1113
[ {
"id" : 3,
"question" : "Javascript 질문 2",
"answer" : "Javascript 답 2",
"workbookName" : "Javascript"
}, {
"id" : 10,
"question" : "Java 질문 1",
"answer" : "Java 답 1",
"workbookName" : "JAVA"
}, {
"id" : 2,
"question" : "Java 질문 3",
"answer" : "Java 답 3",
"workbookName" : "JAVA"
}, {
"id" : 11,
"question" : "Spring 질문 1",
"answer" : "Java 답 1",
"workbookName" : "JAVA"
}, {
"id" : 1,
"question" : "Java 질문 2",
"answer" : "Java 답 2",
"workbookName" : "JAVA"
}, {
"id" : 4,
"question" : "Spring 질문 6",
"answer" : "Spring 답 6",
"workbookName" : "Spring"
}, {
"id" : 7,
"question" : "Javascript 질문 9",
"answer" : "Javascript 답 9",
"workbookName" : "Javascript"
}, {
"id" : 21,
"question" : "Spring 질문 3",
"answer" : "Spring 답 3",
"workbookName" : "Spring"
}, {
"id" : 17,
"question" : "Javascript 질문 4",
"answer" : "Javascript 답 4",
"workbookName" : "Javascript"
}, {
"id" : 14,
"question" : "Javascript 질문 1",
"answer" : "Javascript 답 1",
"workbookName" : "Javascript"
} ]
퀴즈 생성 실패 - 존재하지 않는 카테고리 id
요청
POST /api/quizzes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer botobo.access.token
Accept: application/json
Content-Length: 36
Host: botobo.r-e.kr
{
"workbookIds" : [ 1, 2, 1000 ]
}
응답
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 64
{
"message" : "해당 문제집을 찾을 수 없습니다."
}
비회원용 퀴즈 생성하기
요청
GET /api/quizzes/guest HTTP/1.1
Host: botobo.r-e.kr
응답
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1113
[ {
"id" : 3,
"question" : "Javascript 질문 2",
"answer" : "Javascript 답 2",
"workbookName" : "Javascript"
}, {
"id" : 10,
"question" : "Java 질문 1",
"answer" : "Java 답 1",
"workbookName" : "JAVA"
}, {
"id" : 2,
"question" : "Java 질문 3",
"answer" : "Java 답 3",
"workbookName" : "JAVA"
}, {
"id" : 11,
"question" : "Spring 질문 1",
"answer" : "Java 답 1",
"workbookName" : "JAVA"
}, {
"id" : 1,
"question" : "Java 질문 2",
"answer" : "Java 답 2",
"workbookName" : "JAVA"
}, {
"id" : 4,
"question" : "Spring 질문 6",
"answer" : "Spring 답 6",
"workbookName" : "Spring"
}, {
"id" : 7,
"question" : "Javascript 질문 9",
"answer" : "Javascript 답 9",
"workbookName" : "Javascript"
}, {
"id" : 21,
"question" : "Spring 질문 3",
"answer" : "Spring 답 3",
"workbookName" : "Spring"
}, {
"id" : 17,
"question" : "Javascript 질문 4",
"answer" : "Javascript 답 4",
"workbookName" : "Javascript"
}, {
"id" : 14,
"question" : "Javascript 질문 1",
"answer" : "Javascript 답 1",
"workbookName" : "Javascript"
} ]
관리자 API
관리자 권한으로 문제집 추가하기
요청
POST /api/admin/workbooks HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer botobo.access.token
Accept: application/json
Content-Length: 21
Host: botobo.r-e.kr
{
"name" : "JAVA"
}
응답
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/admin/workbooks/1
Content-Type: application/json
Content-Length: 33
{
"id" : 1,
"name" : "JAVA"
}
관리자 권한으로 카드 추가하기
요청
POST /api/admin/cards HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer botobo.access.token
Accept: application/json
Content-Length: 72
Host: botobo.r-e.kr
{
"question" : "질문1",
"answer" : "답변1",
"workbookId" : 1
}
응답
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /api/admin/cards/1
Content-Type: application/json
Content-Length: 103
{
"id" : 1,
"question" : "질문1",
"answer" : null,
"workbookId" : 1,
"encounterCount" : 0
}
카드 생성 실패
문제집 존재하지 않음
요청
POST /api/admin/cards HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer botobo.access.token
Accept: application/json
Content-Length: 75
Host: botobo.r-e.kr
{
"question" : "질문1",
"answer" : "답변1",
"workbookId" : 1000
}
응답
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 64
{
"message" : "해당 문제집을 찾을 수 없습니다."
}
로그인 API
Github 소셜 로그인
요청
POST /api/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 27
Host: botobo.r-e.kr
{
"code" : "githubCode"
}
응답
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 43
{
"accessToken" : "botobo.access.token"
}