当前位置:   article > 正文

【Node.js】自动生成 API 文档

【Node.js】自动生成 API 文档

 

目录

1、直接使用swagger-ui-express

2、配合swagger-jsdoc


 

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

1、直接使用swagger-ui-express

  1. // 方便来浏览和测试api
  2. npm i swagger-ui-express
 

 

  1. import { Express } from 'express';
  2. import swaggerUi from 'swagger-ui-express';
  3. const options = {
  4. openapi: "3.0.3",
  5. info: {
  6. title: '文档相关接口',
  7. version: '1.0.0',
  8. description: 'API documentation using Swagger',
  9. },
  10. tags: [{
  11. name: "develop",
  12. description: "开发者站点管理接口",
  13. }],
  14. paths: {
  15. "/develop": {
  16. "get": {
  17. "tags": ["develop"],
  18. "description": "获取文档列表!",
  19. "responses": {
  20. "200": {
  21. "description":"返回字符串数组"
  22. }
  23. }
  24. }
  25. }
  26. }
  27. }
  28. const swaggerInstall = (app: Express) => {
  29. app.use(
  30. '/apidoc',
  31. swaggerUi.serve,
  32. swaggerUi.setup(options)
  33. );
  34. };
  35. export { swaggerInstall };

image.png

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

2、配合swagger-jsdoc

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

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

npm i swagger-jsdoc
 

 

  1. import { Express } from 'express';
  2. import path from 'path';
  3. import swaggerDoc from 'swagger-jsdoc';
  4. import swaggerUi from 'swagger-ui-express';
  5. const swaggerOptions = {
  6. swaggerDefinition: {
  7. info: {
  8. title: '文档相关接口',
  9. version: '1.0.0',
  10. description: 'API documentation using Swagger',
  11. },
  12. },
  13. apis: [path.join(__dirname, './routes/*.ts')], // 指定包含 API 路由的文件或文件夹路径
  14. };
  15. const swaggerInstall = (app: Express) => {
  16. app.use(
  17. '/apidoc',
  18. swaggerUi.serve,
  19. swaggerUi.setup(swaggerDoc(swaggerOptions))
  20. );
  21. };
  22. export { swaggerInstall };
 

 

  1. //在对应的接口,注释对应的文档
  2. import express from 'express';
  3. import {
  4. developGetFile,
  5. developGetFileList,
  6. } from '../controllers/developControllers';
  7. const router = express.Router();
  8. /**
  9. * @openapi
  10. * /develop:
  11. * get:
  12. * tags: [develop]
  13. * description: 获取文档列表!
  14. * responses:
  15. * 200:
  16. * description: 返回字符串数组.
  17. */
  18. router.get('/', developGetFileList);

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/166571
推荐阅读
相关标签
  

闽ICP备14008679号