JS Coding
[node.js] swagger 세팅 본문
npm install swagger-jsdoc
npm install swagger-cli
npm install swagger-ui-express
npm install swagger-autogen
packege.json 에
설치
"swagger": "node ./app/utils/swagger/swagger.js"
scripts 에 입력
새롭게 업데이트 시 ( 등록 하거나 수정하거나 )
npm run swagger 실행 해야
json 파일 만들어서 url 보여짐
import swaggerUi from 'swagger-ui-express';
import swaggerFile from './app/utils/swagger/swagger-output.json' assert { type: 'json' };
*app.js / main.js 서버 실행 스크립트 파일에
import
//swagger
app.use(
'/api-docs',
swaggerUi.serve,
swaggerUi.setup(swaggerFile, { explorer: true }),
);
작성 후
swagger.js 작성
import swaggerUi from 'swagger-ui-express';
import swaggerJsdoc from 'swagger-jsdoc';
import swaggerAutogen from 'swagger-autogen';
/**
* swagger 생성 순서
* 1. swagger.js 생성
* 2. swagger-output.json
*/
const options = {
info: {
title: 'WIT API',
version: '1.0.0',
description: 'Test API WIT_INNOT',
},
host: 'localhost:8073',
basePath: '/api',
// securityDefinitions: {
// api_key: {
// type: 'token',
// in: 'header',
// name: 'token',
// },
// },
};
const outputFile = './swagger-output.json';
//const endpointsFiles = 'node ./swagger.js';
const route = ['../../routes/**/**.controller.js'];
swaggerAutogen(outputFile, route, options);
//export { swaggerUi, specs };
여기에서 outputFile 경로를 작성 해주고 그 경로에 json 파일을 만들어준다
자동으로 만들어 주지만 인식 오류로 하나 일단 만들어줘야 실행 된다
{
"swagger": "2.0",
"info": {
"title": "WIT API",
"version": "1.0.0",
"description": "Test API WIT_INNOT"
},
"host": "localhost:8073",
"basePath": "/api",
"schemes": [
"http"
],
"paths": {
"/admin/inquiry/createOneColonOneInquiryAnswer": {
"post": {
"description": "",
"responses": {
"200": {
"description": "OK"
}
}
}
이렇게 작성되어 만들어지고 수정사항은 수정 해주면 된다 .
서버 실행
lcoalhost: 선팩포트 / api-docs url 입력 시 swagger 화면 출력
controller 각 요청 메서드에 swagger 세팅
// #swagger.tags=['MBR']
// #swagger.summary = '내 상세정보'
// #swagger.description = 'getMypage - 내 상세정보 요청'
그룹화도 가능하며 입력 파라미터 설정 가능