Skip to content

Commit

Permalink
♻️ API 스펙 리펙터링
Browse files Browse the repository at this point in the history
  • Loading branch information
waterfogSW committed Oct 1, 2024
1 parent e08f094 commit a1a8884
Showing 1 changed file with 63 additions and 33 deletions.
96 changes: 63 additions & 33 deletions openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ tags:
description: 직업 정보 조회 및 검색 API

paths:
/users/verifications:
/auth/codes:
post:
summary: SMS 인증 요청
description: 회원 가입 또는 로그인을 위한 SMS 인증을 요청합니다.
Expand All @@ -31,32 +31,32 @@ paths:
content:
application/json:
schema:
$ref: '#/components/schemas/PhoneNumberRequest'
$ref: '#/components/schemas/SendAuthCodeRequest'
responses:
'201':
description: 인증 요청 성공
content:
application/json:
schema:
$ref: '#/components/schemas/RequestVerificationResponse'
$ref: '#/components/schemas/SendAuthCodeResponse'
'400':
$ref: '#/components/responses/BadRequest'

/users/verifications/{verificationId}:
/auth/codes/{authCodeId}:
put:
summary: SMS 인증 코드 확인
description: 발급된 verificationId와 SMS 인증 코드로 인증을 완료합니다.
description: 발급된 인증 코드 아이디(authCodeId)와 SMS 인증 코드로 인증을 완료합니다.
tags:
- auth
operationId: verifyCode
parameters:
- $ref: '#/components/parameters/VerificationIdPath'
- $ref: '#/components/parameters/AuthCodeIdPath'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationCodeRequest'
$ref: '#/components/schemas/VerifyCodeRequest'
responses:
'200':
description: 인증 완료 및 토큰 발급
Expand All @@ -83,7 +83,7 @@ paths:
content:
application/json:
schema:
$ref: '#/components/schemas/UserRegistration'
$ref: '#/components/schemas/RegisterUserRequest'
responses:
'201':
description: 회원 가입 성공
Expand All @@ -101,7 +101,7 @@ paths:
'401':
$ref: '#/components/responses/Unauthorized'

/users/token/refresh:
/auth/token/refresh:
post:
summary: 액세스 토큰 갱신
description: 리프레시 토큰을 사용하여 새로운 액세스 토큰을 발급받습니다.
Expand Down Expand Up @@ -221,9 +221,9 @@ components:
type: string
description: 번호 인증 후 발급받은 회원가입용 토큰

VerificationIdPath:
AuthCodeIdPath:
in: path
name: verificationId
name: authCodeId
required: true
schema:
type: string
Expand Down Expand Up @@ -322,7 +322,7 @@ components:
- message
- path

PhoneNumberRequest:
SendAuthCodeRequest:
type: object
properties:
phoneNumber:
Expand All @@ -332,17 +332,17 @@ components:
required:
- phoneNumber

RequestVerificationResponse:
SendAuthCodeResponse:
type: object
properties:
verificationId:
authCodeId:
type: string
format: uuid
description: 인증 요청에 대한 고유 식별자 (UUID 형식)
required:
- verificationId
- authCodeId

VerificationCodeRequest:
VerifyCodeRequest:
type: object
properties:
verificationCode:
Expand All @@ -352,27 +352,57 @@ components:
required:
- verificationCode

VerifyCodeResponseType:
type: string
enum: [ EXISTING_USER, NEW_USER ]

VerifyCodeResponse:
type: object
description: 인증 응답 (기존 사용자와 신규 사용자 모두에 해당)
discriminator:
propertyName: responseType
mapping:
EXISTING_USER: '#/components/schemas/ExistingUserVerificationResponse'
NEW_USER: '#/components/schemas/NewUserVerificationResponse'
required:
- responseType
properties:
accessToken:
type: string
description: 액세스 토큰 (기존 사용자일 경우에만 포함)
refreshToken:
type: string
description: 리프레시 토큰 (기존 사용자일 경우에만 포함)
expiresIn:
type: integer
description: 액세스 토큰의 유효 기간 (초 단위, 기존 사용자일 경우에만 포함)
registerToken:
type: string
description: 회원 가입을 위한 토큰 (신규 사용자일 경우에만 포함)
oneOf:
- required: [ accessToken, refreshToken, expiresIn ]
- required: [ registerToken ]
responseType:
$ref: '#/components/schemas/VerifyCodeResponseType'
description: 인증 응답 (기존 사용자와 신규 사용자 모두에 해당)

UserRegistration:
ExistingUserVerifyCodeResponse:
allOf:
- $ref: '#/components/schemas/VerifyCodeResponse'
- type: object
description: 기존 사용자 인증 응답
required:
- accessToken
- refreshToken
- expiresIn
properties:
accessToken:
type: string
description: 액세스 토큰
refreshToken:
type: string
description: 리프레시 토큰
expiresIn:
type: integer
description: 액세스 토큰의 유효 기간 (초 단위)

NewUserVerifyCodeResponse:
allOf:
- $ref: '#/components/schemas/VerifyCodeResponse'
- type: object
description: 새 사용자 인증 응답
required:
- registerToken
properties:
registerToken:
type: string
description: 회원 가입을 위한 토큰

RegisterUserRequest:
type: object
description: 회원 가입 시 필요한 사용자 정보
properties:
Expand Down

0 comments on commit a1a8884

Please sign in to comment.