在Node.js中使用Swagger自动生成API接口文档

 更新时间:2024年01月22日 09:04:41   作者:5大大大大雄  
这篇文章主要给大家介绍了如何在Node.js项目中使用 Swagger 来自动生成 API接口文档,使用生成方式有很多种,本文基于swagger-jsdoc+swagger-ui-express快速实现,文中通过代码示例介绍的非常详细,需要的朋友可以参考下

如何在Node.js项目中使用 Swagger 来自动生成 API接口文档,使用生成方式有很多种。本文基于swagger-jsdoc+swagger-ui-express快速实现

1、直接使用swagger-ui-express

// 方便来浏览和测试api
npm i swagger-ui-express
import { Express } from 'express';
import swaggerUi from 'swagger-ui-express';
const options = {
  openapi: "3.0.3",
      info: {
      title: '文档相关接口',
      version: '1.0.0',
      description: 'API documentation using Swagger',
  },
  tags: [{
    name: "develop",
    description: "开发者站点管理接口",
  }],
  paths: {
    "/develop": {
      "get": {
      "tags": ["develop"],
      "description": "获取文档列表!",
          "responses": {
            "200": {
              "description":"返回字符串数组"
            }
          }
      }
    }
  }
}
const swaggerInstall = (app: Express) => {
  app.use(
    '/apidoc',
    swaggerUi.serve,
    swaggerUi.setup(options)
  );
};
export { swaggerInstall };

直接使用配置去生成接口文档,更改接口的时候需要同时去更改配置,会相对麻烦点。这时候就可以使用swagger-jsdoc,通过在接口上面注释信息后,就可以自动更新对应的api接口文档,其本质是通过读取该接口对应的注释,然后再转成对应的配置。

2、配合swagger-jsdoc

  • JSDoc 注释是一种特殊的注释语法,用于为 JavaScript 代码添加文档化和类型提示信息。它是基于 JSDoc 规范的一部分,旨在提供一种标准的方式来描述代码的结构、功能和类型信息

  • 作用:接口文档注释有更新,对应的api文档会同步更新。确保接口变更,配置会同时去更改

npm i swagger-jsdoc
import { Express } from 'express';
import path from 'path';
import swaggerDoc from 'swagger-jsdoc';
import swaggerUi from 'swagger-ui-express';

const swaggerOptions = {
  swaggerDefinition: {
    info: {
      title: '文档相关接口',
      version: '1.0.0',
      description: 'API documentation using Swagger',
    },
  },
  apis: [path.join(__dirname, './routes/*.ts')], // 指定包含 API 路由的文件或文件夹路径
};
const swaggerInstall = (app: Express) => {
  app.use(
    '/apidoc',
    swaggerUi.serve,
    swaggerUi.setup(swaggerDoc(swaggerOptions))
  );
};
export { swaggerInstall };
//在对应的接口,注释对应的文档
import express from 'express';
import {
  developGetFile,
  developGetFileList,
} from '../controllers/developControllers';
const router = express.Router();
/**
 * @openapi
 * /develop:
 *   get:
 *     tags: [develop]
 *     description: 获取文档列表!
 *     responses:
 *       200:
 *         description: 返回字符串数组.
 */
router.get('/', developGetFileList);

参考

https://editor.swagger.io/

https://jsdoc.app/

https://github.com/Surnet/swagger-jsdoc

https://github.com/scottie1984/swagger-ui-express

以上就是在Node.js中使用Swagger自动生成API接口文档的详细内容,更多关于Node.js Swagger生成API文档的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:

相关文章

  • webstorm中配置nodejs环境及npm的实例

    webstorm中配置nodejs环境及npm的实例

    今天小编就为大家分享一篇webstorm中配置nodejs环境及npm的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Node.js系列之发起get/post请求(2)

    Node.js系列之发起get/post请求(2)

    这篇文章主要为大家详细介绍了Node.js系列之发起get/post请求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Node.js中fs模块的使用方法

    Node.js中fs模块的使用方法

    这篇文章介绍了Node.js中fs模块的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • node.JS二进制操作模块buffer对象使用方法详解

    node.JS二进制操作模块buffer对象使用方法详解

    在ES6引入TypedArray之前,JavaScript语言没有读取或操作二进制数据流的机制,本文为大家详细介绍nodeJS中二进制操作模块buffer对象使用方法详解
    2020-02-02
  • ExpressJS入门实例

    ExpressJS入门实例

    这篇文章主要介绍了ExpressJS入门实例,本文讲解了创建项目、进入目录、安装项目依赖的包、创建应用程序、运行程序等内容,需要的朋友可以参考下
    2015-01-01
  • 阿里云ecs服务器中安装部署node.js的步骤

    阿里云ecs服务器中安装部署node.js的步骤

    这篇文章给大家介绍了在阿里云ecs服务器中安装部署node.js的详细步骤,对大家安装node.js具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • nodejs dgram模块广播+组播的实现示例

    nodejs dgram模块广播+组播的实现示例

    这篇文章主要介绍了nodejs dgram模块广播+组播的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • nodejs实现获取某宝商品分类

    nodejs实现获取某宝商品分类

    这篇文章主要介绍了nodejs实现获取某宝商品分类,十分的简单实用,进入后台直接打开控制台,把代码粘进去运行就OK了,有需要的小伙伴可以参考下。
    2015-05-05
  • Nodejs中koa2连接mysql的实现示例

    Nodejs中koa2连接mysql的实现示例

    本文主要介绍了Nodejs中koa2连接mysql的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 解决node.js安装包失败的几种方法

    解决node.js安装包失败的几种方法

    nodejs安装包失败的原因可能有很多,下面这篇文章给大家整理三种方法来解决,大家可以试一试或许可以解决你的问题,下面来一起看一看。
    2016-09-09

最新评论