在Express中生成Swagger OpenAPI 文档

OpenAPI与Swagger的区别

  • OpenAPI = 规范
  • Swagger = 实现规范的工具

安装包

Swagger工具

实现范例:

/**
 * @openapi
 * /:
 *   get:
 *     description: Welcome to swagger-jsdoc!
 *     responses:
 *       200:
 *         description: Returns a mysterious string.
 */
app.get('/', (req, res) => {
  res.send('Hello World!');
});

会根据@openapi or @swagger 标记提取注释内容

const swaggerUi = require('swagger-ui-express');
const swaggerJsdoc = require('swagger-jsdoc');

const options = {
  definition: {
    openapi: '3.0.0',
    info: {
      title: 'Hello World',
      version: '1.0.0',
    },
  },
  apis: ['./src/routes*.js'], //包含上述注释的文件
};

const openapiSpecification = swaggerJsdoc(options);
app.use('/api-docs',swaggerUi.serve,swaggerUi.setup(openapiSpecification));
原文地址:https://www.cnblogs.com/tianliupingzong/p/14913215.html