Как стать автором
Обновить

Swagger для чайников

Уровень сложностиПростой

Как задокументировать API с помощью Swagger в Node.js

1. Архитектура сервера

В типичном сервере на Node.js с Express есть несколько основных компонентов:

  • config – подключение к базе дынных

  • server.js – основной файл, который запускает сервер

  • routes/ – папка с маршрутами API

  • controllers/ – логика обработки запросов

  • models/ – работа с моделями

  • swagger.js – генерация документации

  • swagger_output.json – автоматически созданный JSON-файл со спецификацией

Swagger берет данные из router, формируя на их основе понятное описание API.

2. Установка Swagger

Для работы Swagger в проекте установим два пакета:

npm install swagger-ui-express swagger-autogen

  • swagger-ui-express – отвечает за отображение документации в браузере

  • swagger-autogen – автоматически генерирует swagger_output.json из кода

Создадим файл в корне проекта: swagger.js

3. Заполнение swagger.js

const swaggerAutogen = require('swagger-autogen')();
const outputFile = './swagger_output.json'; // Файл, куда сохранится документация const endpointsFiles = ['./routes/*.js']; // Пути к файлам с маршрутами
swaggerAutogen(outputFile, endpointsFiles);

* Когда мы запустим этот файл (node swagger.js), он создаст swagger_output.json.

4. Подключение Swagger в server.js

Теперь добавим Swagger в server.js

const swaggerUi = require('swagger-ui-express');
const swaggerFile = require('../swagger_output.json');
app.use('/doc', swaggerUi.serve, swaggerUi.setup(swaggerFile));

5. Генерация swagger_output.json

Запускаем генерацию Swagger-документации: node swagger.js

После у вас должен сформироваться swagger_output.json в корне проекта

6. Запуск сервера и тестирование

Теперь запустим сервер: node server.js

У меня сервер запущен на порту 3000

Переходим в браузере по адресу: http://localhost:3000/doc

Здесь мы увидим автоматически созданную документацию API, где можно тестировать запросы прямо из браузера, минуя Postman

Swagger не может сам генерировать JSON запросы, как показано на скриншоте в методе POST.

Для этого нужно писать комментарии //#Swagger, либо самому дописывать в swagger_output.json

Но это уже совсем другая история.

Если остались вопросы пишите.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.