Server/node.js

[node.js] Swagger 세팅

2월2 2024. 8. 31. 13:27

1. swagger 모듈을 설치한다.

  • swagger-cli : 우리가 파일로 만든 API docs를 검증하고 하나의 파일로 합쳐주는 라이브러리 (분리된 파일들을 하나로 합쳐줌)
  • swagger-ui-express : swagger-ui를 express에 쉽게 적용시킬 수 있도록 하는 라이브러리
  •  
  • swagger-jsdoc : Javascript 주석 형태로 작성하면 이를 파싱하여 문서로 만드는 라이브러리
yarn add swagger-jsdoc swagger-ui-express swagger-cli --save-dev
npm i swagger-jsdoc swagger-ui-express swagger-cli --save-dev

 

 

 

2. 스웨서 설정 파일 작성한다. 

난 config 폴더 안에 swagger.config.js 파일을 만들었다. 

import SwaggerJsdoc from "swagger-jsdoc";

const options = {
    definition: {
        info: {
            title: '스웨거 제목',
            version: '1.0.0',
            description: '스웨거 설명'
        },
        host: 'localhost:3000',
        basepath: '../'
    },
    apis: ['./src/routes/*.js', './swagger/*']
};

export const specs = SwaggerJsdoc(options);

 

 

 

3. 스웨거 명세서를 생성한다.

난 swagger 폴더를 따로 만들었다.

 

 

 

4. 명세서 작성한다.

아래 링크들을 참고하여 만든다.

https://swagger.io/docs/specification/about/

 

About Swagger Specification | Documentation | Swagger

What Is OpenAPI? OpenAPI Specification (formerly Swagger Specification) is an API description format for REST APIs. An OpenAPI file allows you to describe your entire API, including: Available endpoints (/users) and operations on each endpoint (GET /users,

swagger.io

https://editor.swagger.io/

 

Swagger Editor

 

editor.swagger.io

 

 

 

5. index.js에 관련 코드를 추가한다.

// (...)
import { specs } from './config/swagger.config.js';
import SwaggerUi from 'swagger-ui-express';

// (...)

app.use(express.urlencoded({extended: false})); // 단순 객체 문자열 형태로 본문 데이터 해석

// swagger
app.use('/api-docs', SwaggerUi.serve, SwaggerUi.setup(specs));

// router setting
app.use('/reviews', reviewRouter);

// (...)