본인은 swagger 모듈을 따로 설치하지 않고 swagger viewer라는 확장 프로그램을 사용했습니다.
vsCode 설정에 들어가서 swagger viewer를 치면 나오는 Preview In Browser를 체크해준다.
체크하지 않으면 vsCode 프로그램 내에서 창이 열리는데 복사 붙여넣기가 안되는 문제가 발생함.
Access Token 등 복사 붙여넣기 하는 사항이 많다면 꼭 체크해준다.
여기까지가 초기 설정이다.
openapi: 3.0.0
info:
version: 1.0.0
title: board_game_project
description: 'project'
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: http://localhost:5001
tags:
- name: user
description: User 스키마를 이용한 기능
paths:
# 라우터 url
/user/register:
# 전송 방식 (METHOD)
post:
# 분류할 태그
tags:
- user
summary: 회원가입
# post할 데이터들을 body로 묶어서 보내줌
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/User"
# 응답 코드
responses:
'200':
description: "회원가입 성공!"
'404':
description: "백엔드 실행하셨나요? 포트번호는 5001번 인가요?"
/currentUser:
get:
tags:
- user
summary: 현재 유저의 정보 가져오기
security:
- bearerAuth: []
responses:
'200':
description: 유저 정보 가져오기 성공
content:
application/json:
schema:
type: object
properties:
_id:
type: string
user_name:
type: string
email:
type: string
phone_number:
type: string
_id, user_name, email, phone_number
필드를 보내준다.securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
아래는 components의 전체 코드이다.
위에서 잠깐 언급한 security 코드도 보인다.
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
User:
type: object
required:
- user_name
- email
- password
- phone_number
properties:
user_name:
type: string
email:
type: string
password:
type: string
phone_number:
type: string
security:
- bearerAuth: []
이런식으로 새 브라우저 창이 뜬다.
오른쪽 위의 Try it out
을 누르면 Request body
에 값을 넣어서 테스트 해 볼 수 있다.
값을 채운 다음 Excute
버튼을 누르면 된다.
Swagger 페이지의 제일 위로 가면 Authorize
버튼이 있다. 이 버튼을 누르면 yaml
에서 작성한 BearerToken
을 작성할 수 있는 창이 뜬다.
로그인한 뒤에 생긴 token 값을 여기 복사 붙여넣기 해주면 된다.
간단하게 swagger를 사용하는 법을 알아보았다.
원래 postman을 사용하고 있었는데 크게 다른 점은 없었고 swagger로 API 명세서를 작성하고 테스트하는 법을 공부할 수 있었던 기회였다.
대부분 모듈을 설치해서 각 코드에 설정해주는 것을 보았는데 그 방법은 사용하지 않았고 나중에 yaml 파일들을 분리해서 간편하게 사용할 수 있을 것 같다.
참고
swagger editor
Bearer Authentication 설정
parameter 설정
Basic Structure-velog