Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

JS Coding

[node.js] swagger 세팅 본문

카테고리 없음

[node.js] swagger 세팅

JSKJS 2024. 8. 12. 10:10

 

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 - 내 상세정보 요청'

 

그룹화도 가능하며 입력 파라미터 설정 가능