しおメモ

雑多な技術系ブログです。

Express向けのSwaggerミドルウェア

Express向けのSwaggerパッケージを色々探しましたが、
依存パッケージが少なく、npm auditで引っかからなかった、
こちらを紹介します。

Swagger UI Express

www.npmjs.com

github.com

使い方

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だけ欲しいということで外れました。