Swagger.js
const swaggerUi = require("swagger-ui-express");
const swaggereJsdoc = require("swagger-jsdoc");
const options = {
swaggerDefinition: {
info: {
title: "", // 프로젝트 제목
version: "1.0.0", // 프로젝트 버전
description: "This is project" // 프로젝트 설명
},
host: "localhost:3000", // 요청 URL
basePath: "/",
},
apis: ["./routes/*.js"], //@Swagger 적용한 js 파일 연동
// (파일 경로 입력은 swaggerUi, specs를 import하여 사용하는 파일 위치 기준 => 주로 index.js)
};
const specs = swaggereJsdoc(options);
module.exports = { swaggerUi, specs };
index.js
// Swagger import 기본 세팅
const { swaggerUi, specs } = require("./swagger/swagger");
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(specs));
API Swagger 적용 예시 (yml 형식)
/**
* @swagger # Swagger 적용 선언
* /member/login: # API URL 주소
* post: # HTTP 메소드 종류
* tags: [member] # 태그 종류 => 대괄호([])를 씌워 입력해야 함
* summary: 로그아웃 # 해당 API 설명 설정
* parameters: # 입력받을 파라미터 설정
* - name: wallet # 파라미터 이름
* in: body # 조회 방식(query, body, params)
* description: # 파라미터 설명
* required: true # 필수 입력인지 설정
* schema: # 파라미터 구조 설정
* type: object # json형식으로 입력받을 경우
* properties: # json에 있는 각 파라미터 설정
* wallet: # 파라미터는 response처럼 example 적용 불가
* type: string
* responses: # HTTP 코드마다 response 설정 가능
* 200:
* description: Sucess # 설명
* schema: # response 값의 구조 설정
* properties: # 이 경우에는 {msg: "정상 처리", state: 0, result: true}
* msg:
* type: string
* example: 정상 처리
* state:
* type: number
* example: 0
* result:
* type: boolean
* example: true
*/
router.post("/login", (req, res) => {}) // member 라우터(/member)
댓글