Express向けのSwaggerパッケージを色々探しましたが、
依存パッケージが少なく、npm audit
で引っかからなかった、
こちらを紹介します。
Swagger UI Express
使い方
ExpresssのRouterと合わせて使うと、このような感じです。
const express = require('express'); // eslint-disable-next-line new-cap const router = express.Router(); const swaggerUi = require('swagger-ui-express'); const swaggerDocument = require('./swagger.json'); router.use('/', swaggerUi.serve); router.get('/', swaggerUi.setup(swaggerDocument)); const apiBaseUrl = '/api/v1/'; router.get(apiBaseUrl + 'about', (req, res) => { res.send('about'); }); module.exports = router;
yamljs
を使うとyamlからも読み込めるので、Swagger Editorでも編集しやすいです。
その他
swagger-node
https://github.com/swagger-api/swagger-node
最近(2018.09現在)更新されていないようで、依存パッケージが古いみたいです。
脆弱性だらけなので使えなそう。
generator-express-no-stress
https://github.com/cdimascio/generator-express-no-stress
Swagger以外にも、ESlintやPinoやBabelを含めた雛形を作ってくれますが、
今回はSwaggerだけ欲しいということで外れました。