본문 바로가기
Language/Node.js

[OpenAPI] Swagger

by 노믹 2022. 12. 25.

스웨거란?

스웨거 (Swagger)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 대부분의 사용자들은 스웨거 UI 도구를 통해 스웨거를 식별하며 스웨거 툴셋에는 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함된다.

 

Swagger 자동 적용하기

패키지 설치

npm install swagger-ui-express
npm install swagger-autogen

Swagger.js 파일 추가

const swaggerAutogen = require('swagger-autogen')({ language: 'ko' });

const doc = {
  info: {
    title: "타이틀 입력",
    description: "설명 입력",
  },
  host: "host 주소 입력",
  schemes: ["http"],
  // schemes: ["https" ,"http"],
};

const outputFile = "./swagger-output.json";	// 같은 위치에 swagger-output.json을 만든다.
const endpointsFiles = [
  "../app.js"					// 라우터가 명시된 곳을 지정해준다.
];

swaggerAutogen(outputFile, endpointsFiles, doc);

app.js 에 추가

const swaggerUi = require("swagger-ui-express");
const swaggerFile = require("./swagger-output");


app.use("/swagger", swaggerUi.serve, swaggerUi.setup(swaggerFile));

각 라우터에 Swagger 코드 추가

  //  #swagger.description = '게시글 작성'
  //  #swagger.tags = ['Posts']
  /*  #swagger.parameters[''] = {
            in: 'body',
            schema: {
                title: '안녕하세요 제목입니다.',
                content: '안녕하세요 내용입니다.',
            }
} */
  /*  #swagger.responses[200] = {
            description: '게시글 작성 성공',
            schema: {
                message: '게시글을 생성하였습니다.'
            }
} */

명령어 실행

node ./swagger.js

 

'Language > Node.js' 카테고리의 다른 글

객체 지향 프로그래밍 (Object-Oriented Programming, OOP)  (0) 2022.12.26
객체 지향 (Object-Oriented)  (0) 2022.12.26
[ORM] Sequelize  (0) 2022.12.24
미들웨어  (0) 2022.12.19
Access Token, Refresh Token  (0) 2022.12.19