추천 개발 툴

[NodeJs] - Swagger 기본 사용법, API 문서 자동화

작성자 정보

  • MindSync 작성
  • 작성일

컨텐츠 정보

본문

Swagger는 API 개발 및 관리를 위한 강력한 도구로, API 문서의 자동화 및 시각화를 제공합니다. 

RESTful API의 명세를 기술하고, 해당 명세를 토대로 자동으로 API 문서를 생성하며, 테스트 및 디버깅을 용이하게 합니다.

 

Swagger를 사용하면 간단한 명세 작성을 통해 API의 엔드포인트, 매개변수, 응답 형식 등을 정의할 수 있습니다. 

명세는 OpenAPI 스펙에 기반하여 작성되며, 현재 버전 3.0.0 이상을 지원합니다.

 

Swagger은 자동으로 API 문서를 사용합니다. API 엔드포인트, 매개변수, 응답 형식 등을 빠르게 확인할 수 있어 개발자가 쉽게 이해하고 사용할 수 있습니다!

또, 간단한 UI를 통해 API를 테스트할 수 있는 환경을 제공해서 요청을 직접 생성하고 실행하여 응답을 확인할 수 있습니다.

 

Spring, Python, NodeJs 등 다양한 언어를 지원하기 때문에 개발할 때 편리하여 여러분들이 사용해보기 좋을 것 같아 추천드립니다~!

 

node.js로 swagger을 사용하는 예시를 잠깐 설명드리자면,,


1. 프로젝트 시작




npm init -y

npm install express swagger-jsdoc swagger-ui-express body-parser


2. Express 애플리케이션 설정

- app.js




const express = require('express');

const bodyParser = require('body-parser');

const swaggerJSDoc = require('swagger-jsdoc');

const swaggerUI = require('swagger-ui-express');




const app = express();

const port = 3000;




app.use(bodyParser.json());




// Swagger 설정

const swaggerOptions = {

  definition: {

    openapi: '3.0.0',

    info: {

      title: 'API 문서',

      version: '1.0.0',

    },

  },

  apis: ['./routes/*.js'], // API 정의 파일들의 경로

};




const swaggerSpec = swaggerJSDoc(swaggerOptions);




app.use('/api-docs', swaggerUI.serve, swaggerUI.setup(swaggerSpec));




// API 정의

/**

 * @swagger

 * /api/greet:

 *   get:

 *     summary: 인사말 가져오기

 *     responses:

 *       200:

 *         description: 성공적으로 가져옴

 *         content:

 *           application/json:

 *             example:

 *               message: '안녕하세요!'

 */

app.get('/api/greet', (req, res) => {

  res.json({ message: '안녕하세요!' });

});




/**

 * @swagger

 * /api/user:

 *   post:

 *     summary: 사용자 생성

 *     requestBody:

 *       content:

 *         application/json:

 *           example:

 *             username: 'john_doe'

 *             email: 'john@example.com'

 *     responses:

 *       201:

 *         description: 사용자 생성 성공

 *         content:

 *           application/json:

 *             example:

 *               id: 1

 *               username: 'john_doe'

 *               email: 'john@example.com'

 */

app.post('/api/user', (req, res) => {

  const { username, email } = req.body;

  // 사용자 생성 로직

  const newUser = { id: 1, username, email };

  res.status(201).json(newUser);

});




app.listen(port, () => {

  console.log(`서버가 http://localhost:${port} 에서 실행 중입니다.`);

});


3. Swagger 설정 파일 작성

- 프로젝트 루트에 swagger.json 파일을 작성합니다.




{

  "openapi": "3.0.0",

  "info": {

    "title": "API 문서",

    "version": "1.0.0"

  },

  "paths": {

    "/api/greet": {

      "get": {

        "summary": "인사말 가져오기",

        "responses": {

          "200": {

            "description": "성공적으로 가져옴",

            "content": {

              "application/json": {

                "example": {

                  "message": "안녕하세요!"

                }

              }

            }

          }

        }

      }

    },

    "/api/user": {

      "post": {

        "summary": "사용자 생성",

        "requestBody": {

          "content": {

            "application/json": {

              "example": {

                "username": "john_doe",

                "email": "john@example.com"

              }

            }

          }

        },

        "responses": {

          "201": {

            "description": "사용자 생성 성공",

            "content": {

              "application/json": {

                "example": {

                  "id": 1,

                  "username": "john_doe",

                  "email": "john@example.com"

                }

              }

            }

          }

        }

      }

    }

  }

}


4. API 문서 확인

프로젝트를 실행하고 브라우저에서 http://localhost:3000/api-docs로 접속해보세요~! Swagger UI에서 API 문서를 확인할 수 있습니다.


Swagger은 개발자간 협업 효율도 높일 수 있어서, 토이 프로젝트나 미니 프로젝트에 테스트해보시고

편하시다면 사용하시는 걸 추천드립니다~

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 7 / 1 페이지
RSS
  • 2023년 인기 AI 툴 톱 10
    등록자 Sparkr
    등록일 01.15 조회 1308

    2023년에 가장 인기 있는 AI 툴 중 상위 10개를 소개합니다. 1. 챗GPT (ChatGPT) OpenAI에서 개발한 대화형 인공지능 언어…

  • [NodeJs] - Swagger 기본 사용법, API…
    등록자 MindSync
    등록일 01.11 조회 1046

    Swagger는 API 개발 및 관리를 위한 강력한 도구로, API 문서의 자동화 및 시각화를 제공합니다. RESTful API의 명세를 기술하…

  • GitHub 개발 툴 추천과 장단점
    등록자 DigitalMaestro
    등록일 01.09 조회 1281

    GitHub은 현대 소프트웨어 개발에서 필수적인 플랫폼 중 하나로, 효율적인 협업과 개발 환경을 제공합니다. 깃허브에서 코드 협업, 버전 관리,…

  • Visual Studio Code(VSCode)를 더 …
    등록자 레진코딩
    등록일 01.02 조회 1190

    요즘 개발을 효율적으로 작업하기 위해선 다양한 도구들이 필요합니다. 그 중에서도 Visual Studio Code(VSCode)는 강력한 편집기…

  • IT 스타트업 개발자가 직접 추천하는 업무용 툴 Bes…
    등록자 스팀펑크코더
    등록일 01.02 조회 1310

    IT 스타트업에서는 빠르게 변화하는 환경에서 효율적으로 일하고 협업하기 위해 다양한 업무용 도구들을 사용합니다. 다양한 도구들 중에서 스타트업 …

  • 국내 개발자에게 인기 있는 개발 툴 TOP 5
    등록자 스팀펑크코더
    등록일 12.29 조회 2330

    국내 개발자들은 다양한 프로젝트에서 효율적인 개발을 위해 다양한 도구들을 활용하고 있습니다. 다음은 국내 개발자들에게 특히 인기 있는 개발 툴 …

  • 효율적 개발을 위한 최고의 도구, 비주얼 스튜디오 코드…
    등록자 코아ㅏㅏㅏ
    등록일 09.05 조회 10941

    안녕하세요! 오늘은 개발자들 사이에서 많은 사랑을 받고 있는 '비주얼 스튜디오 코드(Visual Studio Code)'에 대해 이야기하려고 합…