Node.js自动生成API文档的实现

 更新时间:2024年03月05日 09:47:12   作者:王果冻ddd  
本文主要介绍了Node.js自动生成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 };

image.png

直接使用配置去生成接口文档,更改接口的时候需要同时去更改配置,会相对麻烦点。这时候就可以使用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);

到此这篇关于Node.js自动生成API文档的文章就介绍到这了,更多相关Node.js自动生成API内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何在Nestjs和Vue3中使用socket.io示例详解

    如何在Nestjs和Vue3中使用socket.io示例详解

    这篇文章主要为大家介绍了如何在Nestjs和Vue3中使用socket.io示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • NodeJS学习笔记之Connect中间件应用实例

    NodeJS学习笔记之Connect中间件应用实例

    前面我们介绍了几篇内容的connect中间件的基础知识,今天我们来实例应用一下,做个记事本的小应用,希望大家能够喜欢。
    2015-01-01
  • node里的filesystem模块文件读写操作详解

    node里的filesystem模块文件读写操作详解

    这篇文章主要为大家介绍了node里的filesystem模块文件读写操作详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Cli Todo命令行todo工具使用演示

    Cli Todo命令行todo工具使用演示

    这篇文章主要为大家介绍了Cli Todo命令行todo工具使用演示示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • nodejs 实现钉钉ISV接入的加密解密方法

    nodejs 实现钉钉ISV接入的加密解密方法

    这篇文章主要介绍了nodejs 实现钉钉ISV接入的加密解密方法,非常不错,具有参考借鉴价值,需要的的朋友参考下吧,需要的朋友可以参考下
    2017-01-01
  • Vue+Node实现的商城用户管理功能示例

    Vue+Node实现的商城用户管理功能示例

    这篇文章主要介绍了Vue+Node实现的商城用户管理功能,结合实例形式详细分析了商城用户管理的前台登录、校验、跳转、退出等相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • node.js中跨域请求实现方法详解

    node.js中跨域请求实现方法详解

    这篇文章主要介绍了node.js中跨域请求实现方法详解,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • 使用nvm安装|更新|切换|nodejs的命令详解

    使用nvm安装|更新|切换|nodejs的命令详解

    这篇文章主要介绍了使用nvm安装|更新|切换|nodejs的命令详解,有了nvm就可以简单操作node版本的切换、安装、查看等,需要的朋友可以参考下
    2022-07-07
  • NodeJS和BootStrap分页效果的实现代码

    NodeJS和BootStrap分页效果的实现代码

    这篇文章主要介绍了NodeJS和BootStrap分页效果的实现代码的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • 如何通过node.js来写接口详解

    如何通过node.js来写接口详解

    最近研究了一下nodejs写接口,发现接口并不难写,这篇文章主要给大家介绍了关于如何通过node.js来写接口的相关资料,文中通过实例代码和图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09

最新评论