Node.js Swagger3.0 OAS yaml Version

정다영·2022년 10월 25일
0
post-thumbnail

작성방법

파일 구조

swagger.yaml

openapi: 3.0.1
info:
  title: Public Data API
  version: v1
  description: 한국언론진흥재단 메타데이터 중 코로나, 메타버스 관련 정보를 제공합니다.
  license:
    name: DanaJeong
servers:
  - url: http://localhost:3000/
paths:
  /news/{category}/{year}:
    get:
      tags:
      - 뉴스
      summary: 한국언론진흥재단 메타데이터 중 코로나, 메타버스 관련 정보를 제공합니다.
      description: 2020~2021 코로나 및 메타버스 뉴스 빅데이터 조회하기
      operationId: ApiTodoGet
      parameters:
      - name: category
        in: path
        description: 카테고리 선택
        required: true
        schema:
          type: string
          enum:
          - metabus
          - corona
      - name: year
        in: path
        description: 연도 선택
        required: true
        schema:
          type: string
          enum:
          - '2007'
          - '2020'
          - '2021'
      responses:
        '200':
          description: 데이터 통신 성공
          content:
            application/json:
              schema: 
              example: 
                data:
                  - 기고자: string
                    본문: string
                    언론사: string
                    원본주소: string
                    일자: date
                    제목: string
                    주소: string
                    키워드: array
                    통합 분류1: string
                    특성추출: array
        '400':
          description: 데이터가 존재하지 않음
          content:
            application/json:
              schema: 
              example : 
                message: DATA DOESN'T EXIST
        '500':
          description: 서버 에러
          content:
            application/json:
              schema: 
              example : 
                message: SERVER ERROR!        
      additionalProperties: false

swagger폴더 및 하위폴더에 swagger.yaml을 생성

app.js 작성

const express = require("express");
const cors = require("cors");
const morgan = require("morgan");
const YAML = require("yamljs")
const path = require('path');
const swaggerUi = require('swagger-ui-express');
const swaggerSpec = YAML.load(path.join(__dirname, "./src/swagger/swagger.yaml"));
const routes = require("./src/routers");


const createApp = () => {
  const app = express();

  app.use(express.json());
  app.use(cors());
  app.use(morgan("dev"));
  app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));

  app.use(routes);

  return app;
};

module.exports = { createApp };	

결과물

http://localhost:3000/api-docs 접속


json파일을 yaml파일로 변경하는 사이트

https://www.json2yaml.com/

공식문서

https://petstore3.swagger.io/
swagger-petstore/src/main/resources/openapi.yaml

profile
Hello World~

0개의 댓글