learnsteam-quiz-api/docs/swagger.yaml
2023-11-17 01:38:01 +09:00

689 lines
17 KiB
YAML

definitions:
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.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.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.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: username, password 를 입력하여 로그인
parameters:
- description: username
in: body
name: username
required: true
schema:
type: string
- description: 비밀번호
in: body
name: password
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.LoginResponse'
summary: 로그인
/auth/register:
post:
consumes:
- application/json
description: username, name, password 를 입력하여 회원가입
parameters:
- description: username
in: body
name: username
required: true
schema:
type: string
- description: 이름
in: body
name: name
required: true
schema:
type: string
- description: 비밀번호
in: body
name: password
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.RegisterResponse'
summary: 회원가입
/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'
security:
- ApiKeyAuth: []
summary: 프로그램 목록 가져오기
post:
consumes:
- application/json
description: 퀴즈 프로그램을 만듭니다.
parameters:
- description: 프로그램 제목
in: body
name: subject
required: true
schema:
type: string
- description: 프로그램 코스
in: body
name: course
required: true
schema:
type: string
- description: 프로그램 내용
in: body
name: content
required: true
schema:
type: string
- description: 프로그램 태그
in: body
name: tag
required: true
schema:
items:
type: string
type: array
- description: 프로그램 상태 on 또는 off
in: body
name: status
required: true
schema:
type: string
- description: 프로그램 발행 날짜
in: body
name: publish_at
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramResponse'
summary: 퀴즈 프로그램 생성
put:
consumes:
- application/json
description: 퀴즈 프로그램을 수정합니다.
parameters:
- description: 프로그램 제목
in: body
name: subject
required: true
schema:
type: string
- description: 프로그램 코스
in: body
name: course
required: true
schema:
type: string
- description: 프로그램 내용
in: body
name: content
required: true
schema:
type: string
- description: 프로그램 태그
in: body
name: tag
required: true
schema:
items:
type: string
type: array
- description: 프로그램 상태 on 또는 off
in: body
name: status
required: true
schema:
type: string
- description: 프로그램 발행 날짜
in: body
name: publish_at
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.ProgramResponse'
summary: 퀴즈 프로그램 수정
/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'
"400":
description: Bad Request
summary: 퀴즈 프로그램 가져오기
/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: 퀴즈 목록 가져오기
post:
consumes:
- application/json
description: 퀴즈를 만듭니다.
parameters:
- description: 프로그램 ID
in: body
name: program_id
required: true
schema:
type: string
- description: 퀴즈 순서
in: body
name: sequence
required: true
schema:
type: integer
- description: '퀴즈 타입 : choice, check, ox, input'
in: body
name: quiz_type
required: true
schema:
type: string
- description: 퀴즈 문제
in: body
name: question
required: true
schema:
type: string
- description: '퀴즈 선택지 : [''선택1'',''선택2'',''선택3'', ''선택4'']'
in: body
name: choice
required: true
schema:
items:
type: string
type: array
- description: '퀴즈 정답 : [1,3]'
in: body
name: answer
required: true
schema:
items:
type: string
type: array
- description: 퀴즈 힌트
in: body
name: hint
required: true
schema:
type: string
- description: 퀴즈 해설
in: body
name: comment
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizResponse'
summary: 퀴즈 생성
put:
consumes:
- application/json
description: 퀴즈를 수정합니다.
parameters:
- description: 퀴즈 ID
in: path
name: id
required: true
type: string
- description: 프로그램 ID
in: body
name: program_id
required: true
schema:
type: string
- description: 퀴즈 순서
in: body
name: sequence
required: true
schema:
type: integer
- description: '퀴즈 타입 : choice, check, ox, input'
in: body
name: quiz_type
required: true
schema:
type: string
- description: 퀴즈 문제
in: body
name: question
required: true
schema:
type: string
- description: '퀴즈 선택지 : [''선택1'',''선택2'',''선택3'', ''선택4'']'
in: body
name: choice
required: true
schema:
items:
type: string
type: array
- description: '퀴즈 정답 : [1,3]'
in: body
name: answer
required: true
schema:
items:
type: string
type: array
- description: 퀴즈 힌트
in: body
name: hint
required: true
schema:
type: string
- description: 퀴즈 해설
in: body
name: comment
required: true
schema:
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/learnsteam_learsteam-quiz-api_internal_models.QuizResponse'
summary: 퀴즈 수정
/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'
"400":
description: Bad Request
summary: 퀴즈 가져오기
/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
/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: 사용자 목록 가져오기
/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'
"400":
description: Bad Request
summary: 사용자 정보 가져오기
swagger: "2.0"