Node server生成Swagger接口文档

本文介绍使用NodeJs搭建的后端server快速生成Swagger接口文档的技巧。将Node.js服务器的路由信息转换成Swagger(现称OpenAPI Specification)格式的步骤通常如下:

  1. 安装必要的Node.js库 :首先,需要在Node.js项目中安装Swagger相关的库。一个常用的库是swagger-jsdoc,它可以根据JSDoc注释自动创建Swagger文档。同时,swagger-ui-express可以用来在你的Express应用中提供一个可视化的Swagger UI。

    bash 复制代码
    npm install swagger-jsdoc swagger-ui-express --save
  2. 添加JSDoc注释 :在路由处理器中使用JSDoc注释来描述API。swagger-jsdoc将使用这些注释生成Swagger文档。

    例如:

    javascript 复制代码
    /**
     * @swagger
     * /users:
     *   get:
     *     description: 返回用户列表
     *     responses:
     *       200:
     *         description: 成功获取用户列表
     */
    app.get('/users', (req, res) => {
      // ...
    });
  3. 配置swagger-jsdoc :在应用程序中配置swagger-jsdoc,以便能够收集所有的JSDoc注释并生成Swagger文档。

    javascript 复制代码
    const swaggerJSDoc = require('swagger-jsdoc');
    const swaggerDefinition = {
      openapi: '3.0.0',
      info: {
        title: 'Express API with Swagger',
        version: '1.0.0',
      },
      servers: [
        {
          url: 'http://localhost:3000',
          description: 'Development server',
        },
      ],
    };
    
    const options = {
      swaggerDefinition,
      // 路径到API文档的地方
      apis: ['./routes/*.js'], // e.g. assuming your routes are in a directory called "routes"
    };
    
    const swaggerSpec = swaggerJSDoc(options);
  4. 使用swagger-ui-express为Swagger文档提供UI

    javascript 复制代码
    const swaggerUi = require('swagger-ui-express');
    
    // 在你的应用中设置路由服务Swagger文档
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
  5. 运行你的应用并访问Swagger UI :当运行Node.js应用时,可以访问http://localhost:3000/api-docs(或配置的其他地址)来查看和测试API。


English version

The steps to transform the routing information of a Node.js server into Swagger (now known as OpenAPI Specification) format are typically as follows:

  1. Install Necessary Node.js Libraries : First, necessary Swagger-related libraries need to be installed in the Node.js project. A commonly used library is swagger-jsdoc, which can automatically create Swagger documentation based on JSDoc comments. Additionally, swagger-ui-express can be used to provide a visual Swagger UI in an Express application.

    bash 复制代码
    npm install swagger-jsdoc swagger-ui-express --save
  2. Add JSDoc Comments : Use JSDoc comments to describe the API in the route handlers. swagger-jsdoc will use these comments to generate Swagger documentation.

    For example:

    javascript 复制代码
    /**
     * @swagger
     * /users:
     *   get:
     *     description: Returns a list of users
     *     responses:
     *       200:
     *         description: Successfully retrieved list of users
     */
    app.get('/users', (req, res) => {
      // ...
    });
  3. Configure swagger-jsdoc : Configure swagger-jsdoc in the application to collect all JSDoc comments and generate Swagger documentation.

    javascript 复制代码
    const swaggerJSDoc = require('swagger-jsdoc');
    const swaggerDefinition = {
      openapi: '3.0.0',
      info: {
        title: 'Express API with Swagger',
        version: '1.0.0',
      },
      servers: [
        {
          url: 'http://localhost:3000',
          description: 'Development server',
        },
      ],
    };
    
    const options = {
      swaggerDefinition,
      // Path to the API docs
      apis: ['./routes/*.js'], // e.g. assuming your routes are in a directory called "routes"
    };
    
    const swaggerSpec = swaggerJSDoc(options);
  4. Use swagger-ui-express to Provide UI for Swagger Documentation:

    javascript 复制代码
    const swaggerUi = require('swagger-ui-express');
    
    // Set up a route in your application to serve the Swagger documentation
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
  5. Run Your Application and Access Swagger UI : Now, when running the Node.js application, the Swagger UI can be accessed at http://localhost:3000/api-docs (or another configured address) to view and test the API.

Remember to replace the paths and information in the example with those in the actual application. The above steps require some manual work in the code, but once completed, a real-time updated API documentation is obtained, which is very convenient for API testing and collaborative work.

相关推荐
爱加班的猫17 小时前
Node.js 中 require 函数的原理深度解析
前端·node.js
冲!!1 天前
使用nvm查看/安装node版本
前端·node.js·node·nvm
萌萌哒草头将军1 天前
Node.js v24.6.0 新功能速览 🚀🚀🚀
前端·javascript·node.js
行星0081 天前
mac 通过homebrew 安装和使用nvm
macos·npm·node.js
kngines2 天前
【Node.js从 0 到 1:入门实战与项目驱动】1.3 Node.js 的应用场景(附案例与代码实现)
node.js
xrkhy2 天前
nvm安装详细教程(卸载旧的nodejs,安装nvm、node、npm、cnpm、yarn及环境变量配置)
前端·npm·node.js
专注API从业者3 天前
Python/Node.js 调用taobao API:构建实时商品详情数据采集服务
大数据·前端·数据库·node.js
Q_Q19632884753 天前
python基于Hadoop的超市数据分析系统
开发语言·hadoop·spring boot·python·django·flask·node.js
布兰妮甜3 天前
Vite 为什么比 Webpack 快?原理深度分析
前端·webpack·node.js·vite
Q_Q5110082853 天前
python的滑雪场雪具租赁服务数据可视化分析系统
spring boot·python·信息可视化·django·flask·node.js·php