在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文档的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:

相关文章

  • Nodejs使用winston进行日志记录详解

    Nodejs使用winston进行日志记录详解

    在生产环境中,更常见的做法是使用专门的日志记录库,如winston、log4js等,来实现更灵活和可配置的日志记录功能,本篇文章将介绍的是winston的强大的日志记录功能,快跟随小编一起学习一下吧
    2024-01-01
  • nodejs根据ip数组在百度地图中进行定位

    nodejs根据ip数组在百度地图中进行定位

    本文主要介绍了nodejs根据ip数组在百度地图中进行定位的方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 深入理解Node.js中的Worker线程

    深入理解Node.js中的Worker线程

    这篇文章主要介绍了深入理解Node.js中的Worker线程,对Worker线程感兴趣的同学,一定要看一下
    2021-04-04
  • 教你用Node.js与Express建立一个GraphQL服务器

    教你用Node.js与Express建立一个GraphQL服务器

    GraphQL是一种通过强类型查询语言构建api的新方法,下面这篇文章主要给大家介绍了关于用Node.js与Express建立一个GraphQL服务器的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • nodejs个人博客开发第六步 数据分页

    nodejs个人博客开发第六步 数据分页

    这篇文章主要为大家详细介绍了nodejs个人博客开发的数据分页,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • node.js实现的装饰者模式示例

    node.js实现的装饰者模式示例

    这篇文章主要介绍了node.js实现的装饰者模式,简单说明了装饰者模式的原理、功能并结合实例形式给出了node.js装饰者模式的实现方法,需要的朋友可以参考下
    2017-09-09
  • 简单了解小程序+node梳理登陆流程

    简单了解小程序+node梳理登陆流程

    这篇文章主要介绍了简单了解小程序+node梳理登陆流程,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • 轻松创建nodejs服务器(3):代码模块化

    轻松创建nodejs服务器(3):代码模块化

    这篇文章主要介绍了轻松创建nodejs服务器(3):代码模块化,本文是对第一节的例子作了封装,需要的朋友可以参考下
    2014-12-12
  • 轻松创建nodejs服务器(6):作出响应

    轻松创建nodejs服务器(6):作出响应

    这篇文章主要介绍了轻松创建nodejs服务器(6):作出响应,我们接着改造服务器,让请求处理程序能够返回一些有意义的信息,需要的朋友可以参考下
    2014-12-12
  • Node.Js生成比特币地址代码解析

    Node.Js生成比特币地址代码解析

    本篇文章给大家分享了关于用NODE.JS生成比特币地址的相关代码,对此有兴趣的读者们可以参考测试下。
    2018-04-04

最新评论