learnsteam-quiz-api/docs/swagger.yaml

850 lines
21 KiB
YAML

definitions:
learnsteam_learsteam-quiz-api_internal_models.Exam:
properties:
end_at:
type: string
id:
example: ef74c59a-c707-4162-a52b-455906c81ec1
type: string
name:
example: 홍길순
type: string
program:
example: 파이썬 초급 과정
type: string
program_id:
example: 7f9329f5-2e36-4638-92d2-73064b7291a4
type: string
score:
example: 5
type: integer
start_at:
type: string
status:
example: ready
type: string
subject:
example: 출력 Print
type: string
total:
example: 5
type: integer
user_id:
example: f95159dd-c42c-490d-ac6b-ca5d88a266bb
type: string
type: object
learnsteam_learsteam-quiz-api_internal_models.ExamListResponse:
properties:
data:
items:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.Exam'
type: array
page:
example: 1
type: integer
pageSize:
example: 10
type: integer
total:
example: 999
type: integer
totalPage:
example: 99
type: integer
type: object
learnsteam_learsteam-quiz-api_internal_models.ExamPatchRequest:
properties:
end_at:
example: "2023-11-10T13:25:00+09:00"
type: string
score:
example: 4
type: integer
start_at:
example: "2023-11-10T13:10:00+09:00"
type: string
status:
example: rating
type: string
type: object
learnsteam_learsteam-quiz-api_internal_models.ExamRequest:
properties:
program_id:
example: 7f9329f5-2e36-4638-92d2-73064b7291a4
type: string
users:
items:
type: integer
type: array
type: object
learnsteam_learsteam-quiz-api_internal_models.ExamResponse:
properties:
end_at:
example: "2023-11-10T13:25:00+09:00"
type: string
id:
example: ef74c59a-c707-4162-a52b-455906c81ec1
type: string
name:
example: 홍길순
type: string
program:
example: 파이썬 초급 과정
type: string
program_id:
example: 7f9329f5-2e36-4638-92d2-73064b7291a4
type: string
score:
example: 5
type: integer
start_at:
example: "2023-11-10T13:10:00+09:00"
type: string
status:
example: ready
type: string
subject:
example: 출력 Print
type: string
total:
example: 5
type: integer
user_id:
example: f95159dd-c42c-490d-ac6b-ca5d88a266bb
type: string
type: object
learnsteam_learsteam-quiz-api_internal_models.ExamUpdateRequest:
properties:
end_at:
example: "2023-11-10T13:25:00+09:00"
type: string
name:
example: 홍길순
type: string
program:
example: 파이썬 초급 과정
type: string
program_id:
example: 7f9329f5-2e36-4638-92d2-73064b7291a4
type: string
score:
example: 5
type: integer
start_at:
example: "2023-11-10T13:10:00+09:00"
type: string
status:
example: ready
type: string
subject:
example: 출력 Print
type: string
total:
example: 5
type: integer
user_id:
example: f95159dd-c42c-490d-ac6b-ca5d88a266bb
type: string
type: object
learnsteam_learsteam-quiz-api_internal_models.LoginRequest:
properties:
password:
type: string
username:
type: string
type: object
learnsteam_learsteam-quiz-api_internal_models.LoginResponse:
properties:
refresh_token:
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3MDc4OTcwMjcs
type: string
token:
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3MDI3MTMwMjcsInN1
type: string
user:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.User'
type: object
learnsteam_learsteam-quiz-api_internal_models.Program:
properties:
content:
example: 코스 설명
type: string
course:
example: 코스 이름
type: string
id:
example: ef74c59a-c707-4162-a52b-455906c81ec1
type: string
publish_at:
example: "2023-11-10T00:00:00+09:00"
type: string
status:
example: "on"
type: string
subject:
example: 프로그램 제목
type: string
tag:
items:
type: integer
type: array
type: object
learnsteam_learsteam-quiz-api_internal_models.ProgramListResponse:
properties:
data:
items:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.Program'
type: array
page:
example: 1
type: integer
pageSize:
example: 10
type: integer
total:
example: 999
type: integer
totalPage:
example: 99
type: integer
type: object
learnsteam_learsteam-quiz-api_internal_models.ProgramRequest:
properties:
content:
example: 코스 설명
type: string
course:
example: 코스 이름
type: string
publish_at:
example: "2023-11-10T00:00:00+09:00"
type: string
status:
example: "on"
type: string
subject:
example: 프로그램 제목
type: string
tag:
items:
type: integer
type: array
type: object
learnsteam_learsteam-quiz-api_internal_models.ProgramResponse:
properties:
content:
example: 코스 설명
type: string
course:
example: 코스 이름
type: string
id:
example: ef74c59a-c707-4162-a52b-455906c81ec1
type: string
publish_at:
example: "2023-11-10T00:00:00+09:00"
type: string
status:
example: "on"
type: string
subject:
example: 프로그램 제목
type: string
tag:
example:
- tag1
- tag2
items:
type: string
type: array
type: object
learnsteam_learsteam-quiz-api_internal_models.Quiz:
properties:
answer:
items:
type: integer
type: array
choice:
items:
type: integer
type: array
comment:
example: 퀴즈 해설
type: string
hint:
example: 퀴즈 힌트
type: string
id:
example: 1b066168-68c4-4b50-bc9a-b6c4fceaf378
type: string
program_id:
example: 2036023a-fb56-4b6c-b3bb-c787c681ada6
type: string
question:
example: 퀴즈 질문입니다.
type: string
quiz_type:
example: choice
type: string
sequence:
example: 5
type: integer
type: object
learnsteam_learsteam-quiz-api_internal_models.QuizListResponse:
properties:
data:
items:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.Quiz'
type: array
page:
example: 1
type: integer
pageSize:
example: 10
type: integer
total:
example: 5
type: integer
totalPage:
example: 1
type: integer
type: object
learnsteam_learsteam-quiz-api_internal_models.QuizRequest:
properties:
answer:
items:
type: integer
type: array
choice:
items:
type: integer
type: array
comment:
type: string
hint:
type: string
program_id:
type: string
question:
type: string
quiz_type:
type: string
sequence:
type: integer
type: object
learnsteam_learsteam-quiz-api_internal_models.QuizResponse:
properties:
answer:
items:
type: integer
type: array
choice:
items:
type: integer
type: array
comment:
example: 퀴즈 해설
type: string
hint:
example: 퀴즈 힌트
type: string
id:
example: 1b066168-68c4-4b50-bc9a-b6c4fceaf378
type: string
program_id:
example: 2036023a-fb56-4b6c-b3bb-c787c681ada6
type: string
question:
example: 퀴즈 질문입니다.
type: string
quiz_type:
example: check
type: string
sequence:
example: 5
type: integer
type: object
learnsteam_learsteam-quiz-api_internal_models.RegisterRequest:
properties:
name:
type: string
password:
type: string
username:
type: string
type: object
learnsteam_learsteam-quiz-api_internal_models.RegisterResponse:
properties:
refresh_token:
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3MDc4OTcwMjcs
type: string
token:
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE3MDI3MTMwMjcsInN1
type: string
user:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.User'
type: object
learnsteam_learsteam-quiz-api_internal_models.User:
properties:
id:
example: 137c1683-2ad6-4201-b256-253828b61c49
type: string
name:
example: 홍길동
type: string
score:
example: 9999
type: integer
username:
example: user0
type: string
type: object
learnsteam_learsteam-quiz-api_internal_models.UserListResponse:
properties:
data:
items:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.User'
type: array
page:
example: 1
type: integer
pageSize:
example: 10
type: integer
total:
example: 90
type: integer
totalPage:
example: 9
type: integer
type: object
info:
contact:
email: sheen@jongyeob.com
name: Jay Sheen
description: Learnsteam Quiz 서비스 API
title: Learsteam Quiz API
version: "1.0"
paths:
/auth/login:
post:
consumes:
- application/json
description: 사용자가 로그인합니다.
parameters:
- description: Login Body
in: body
name: loginBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.LoginRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.LoginResponse'
summary: 사용자 로그인 로그인
tags:
- 로그인
/auth/register:
post:
consumes:
- application/json
description: username, name, password 를 입력하여 회원가입
parameters:
- description: Register Body
in: body
name: registerBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.RegisterRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.RegisterResponse'
summary: 회원가입
tags:
- 회원가입
/exam:
get:
consumes:
- application/json
description: 응시 목록을 가져옵니다.
parameters:
- description: 검색어
in: query
name: q
type: string
- description: 페이지
in: query
name: page
type: integer
- description: 페이지 사이즈
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ExamListResponse'
summary: 응시 목록 가져오기
tags:
- Exam
patch:
consumes:
- application/json
description: 응시 정보를 변경합니다.
parameters:
- description: Exam Patch Body (변경할 필드만 입력)
in: body
name: examPatchBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ExamPatchRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ExamResponse'
summary: 응시 정보 변경
tags:
- Exam
post:
consumes:
- application/json
description: 응시 매칭을 만듭니다.
parameters:
- description: Exam Body
in: body
name: examBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ExamRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.Exam'
type: array
summary: 응시 매칭 생성
tags:
- Exam
put:
consumes:
- application/json
description: 응시를 수정합니다.
parameters:
- description: Exam Update Body
in: body
name: examUpdateBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ExamUpdateRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ExamResponse'
summary: 응시 수정
tags:
- Exam
/exam/{id}:
get:
consumes:
- application/json
description: ID로 응시 정보를 가져옵니다.
parameters:
- description: 응시 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ExamResponse'
summary: 응시 정보 가져오기
tags:
- Exam
/program:
get:
consumes:
- application/json
description: 퀴즈 프로그램 목록을 가져옵니다.
parameters:
- description: 태그
in: query
name: tag
type: string
- description: 검색어
in: query
name: q
type: string
- description: 페이지
in: query
name: page
type: integer
- description: 페이지 사이즈
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramListResponse'
summary: 프로그램 목록 가져오기
tags:
- Program
post:
consumes:
- application/json
description: 퀴즈 프로그램을 만듭니다.
parameters:
- description: Program Body
in: body
name: programBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramResponse'
summary: 퀴즈 프로그램 생성
tags:
- Program
put:
consumes:
- application/json
description: 퀴즈 프로그램을 수정합니다.
parameters:
- description: Program Body
in: body
name: programUpdateBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramResponse'
summary: 퀴즈 프로그램 수정
tags:
- Program
/program/{id}:
get:
consumes:
- application/json
description: ID로 퀴즈 프로그램을 가져옵니다.
parameters:
- description: 퀴즈 프로그램 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramResponse'
summary: 퀴즈 프로그램 가져오기
tags:
- Program
/quiz:
get:
consumes:
- application/json
description: 퀴즈 목록을 가져옵니다.
parameters:
- description: 프로그램 ID
in: query
name: program_id
required: true
type: string
- description: 검색어
in: query
name: q
type: string
- description: 페이지
in: query
name: page
type: integer
- description: 페이지 사이즈
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizListResponse'
summary: 퀴즈 목록 가져오기
tags:
- Quiz
post:
consumes:
- application/json
description: 퀴즈를 만듭니다.
parameters:
- description: Quiz Body
in: body
name: quizBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizResponse'
summary: 퀴즈 생성
tags:
- Quiz
put:
consumes:
- application/json
description: 퀴즈를 수정합니다.
parameters:
- description: Quiz Body
in: body
name: quizBody
required: true
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizResponse'
summary: 퀴즈 수정
tags:
- Quiz
/quiz/{id}:
get:
consumes:
- application/json
description: ID로 퀴즈를 가져옵니다.
parameters:
- description: 퀴즈 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizResponse'
summary: 퀴즈 가져오기
tags:
- Quiz
/token/refresh:
post:
consumes:
- application/json
description: AccessToken을 RefreshToken으로 갱신합니다.
parameters:
- description: RefreshToken
in: body
name: refresh_token
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramResponse'
summary: AccessToken Refresh
tags:
- Token
/user:
get:
consumes:
- application/json
description: 사용자 목록을 가져옵니다.
parameters:
- description: 검색어
in: query
name: q
type: string
- description: 페이지
in: query
name: page
type: integer
- description: 페이지 사이즈
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.UserListResponse'
summary: 사용자 목록 가져오기
tags:
- User
/user/{id}:
get:
consumes:
- application/json
description: ID로 사용자 정보를 가져옵니다.
parameters:
- description: 사용자 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.User'
summary: 사용자 정보 가져오기
tags:
- User
swagger: "2.0"