Express中使用Swagger

Swagger


Swagger 是一种规范,用于描述 API 的结构,功能和参数。使用 Swagger 可以提供清晰的可视化 API 文档,可用于 API 交互的文档驱动开发,以及 API 的自动化测试和集成。

  1. 使用 npm 或 yarn 下载。
npm install swagger-jsdoc swagger-ui-express --save
yarn add swagger-jsdoc swagger-ui-express

  1. 在 Express 根目录下的 app.js 中导入。
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');

// ...

// definition 字段用于定义 Swagger 规范,apis 字段用于指定使用 Swagger 规范的 API 文件路径
const options = {
   
    definition: {
   
        openapi: '3.0.0',
        info: {
   
            title: 'My API',
            version: '1.0.0'
        }
    },
    apis: ['./routes/*.js']
};

const swaggerSpec = swaggerJsdoc(options);

app.use('/api', swaggerUi.serve, swaggerUi.setup(swaggerSpec));

// 其他路由...

  1. 导入后即可在 router 中新增 Swagger 注释。
/**
 * @swagger
 * /users:
 *  get:
 *    summary: 获取所有用户信息
 *    responses:
 *      200:
 *        description: 成功获取所有用户信息
 * 
 *  post:
 *    summary: 创建用户
 *    parameters:
 *      - in: body
 *        name: user
 *        schema:
 *          type: object
 *          properties:
 *            name:
 *              type: string
 *            age:
 *              type: integer
 *    responses:
 *      200:
 *        description: 成功创建用户
 */

如果编写接口时使用的是 ApiFoxPostCat 等支持导出 OpenAI 规范文件的接口工具,
可以导出 OpenAI 规范的接口文件,然后访问 Swagger Editor 并导入接口文件。将左侧显示的内容复制到 Express 的路由文件中,并调整格式如上文所示注释格式即可。

跳转 Express 下的 /api 即可访问所有使用 Swagger 规范的 API 接口。

相关推荐

  1. Express使用Swagger

    2023-12-14 12:44:05       66 阅读
  2. Express 使用 Session 认证

    2023-12-14 12:44:05       43 阅读
  3. node项目express使用

    2023-12-14 12:44:05       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-14 12:44:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-14 12:44:05       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-14 12:44:05       82 阅读
  4. Python语言-面向对象

    2023-12-14 12:44:05       91 阅读

热门阅读

  1. simulink自定义用户库、模块封装及案例测试

    2023-12-14 12:44:05       62 阅读
  2. web安全的基本概念及其应用场景

    2023-12-14 12:44:05       61 阅读
  3. python开发中,django更改运行端口号

    2023-12-14 12:44:05       58 阅读
  4. Oracle Linux 8 安装图形界面和tigervnc-server

    2023-12-14 12:44:05       68 阅读
  5. C#修饰符

    2023-12-14 12:44:05       68 阅读
  6. 【无标题】

    2023-12-14 12:44:05       57 阅读
  7. 【libp2p-echo案例】

    2023-12-14 12:44:05       64 阅读
  8. 【Socket】Unix环境下搭建简易本地时间获取服务

    2023-12-14 12:44:05       46 阅读