【问题标题】:Nodejs swagger integration - Express RouterNodejs 招摇集成 - 快速路由器
【发布时间】:2018-03-28 12:08:34
【问题描述】:

我知道使用 JSON / YAML 为我的 NodeJs 项目配置 swagger。有什么方法可以像 swagger 为 spring webservices 做的那样自动化文档。

注意:我正在使用 Express Router 创建端点。

【问题讨论】:

  • 您是在谈论为服务器端创建样板代码的服务器存根生成器吗?例如:github.com/swagger-api/swagger-codegen
  • 它会像spring一样为@RestController编译应用程序中的所有路由器来自动生成swagger api-doc。

标签: node.js express swagger swagger-ui swagger-2.0


【解决方案1】:

是的,包 swagger-autogen 执行 Swagger 文档的自动构建。

首先,安装包:npm i swagger-autogen

如果您有这样的端点/路由文件:

routes.js

const express = require('express')
const ToolsController = require('./controllers/ToolsController')

const router = express.Router()

const apiV1 = require('./controllers/ApiRoute1')

router.use('/v1', apiV1)

module.exports = router

例如,只需声明一个名为 swagger.js 的文件:

swagger.js

const swaggerAutogen = require('swagger-autogen')()

swaggerAutogen('./swagger-output.json', ['./routes.js']);

在package.json中添加脚本如:

"scripts": {
    "swagger-autogen": "node ./swagger.js"
}

然后运行:npm run swagger-autogen

Swagger 文档将在 swagger-output.json 中。

要添加描述、标签、摘要等,请访问https://www.npmjs.com/package/swagger-autogen#endpoints

示例:包含此模块最简单用法和最完整用法的项目链接。请参阅以下链接:

Example using Router

Example without Router

【讨论】:

    【解决方案2】:

    是的,你可以使用 swagger-ui-express 或其他 npm 库 =)

    【讨论】:

    • 我认为 swagger-ui-express 对于 api-docs 需要 .json 或 .yaml。
    • @SharanDeSilva 好的,抱歉!您可以尝试使用 TSOA。 npmjs.com/package/tsoa
    • 我正在使用 express 来创建我的端点。从你分享的链接中,我可以理解这是针对打字稿路由器的。
    • @SharanDeSilva mmm 好的,我使用 typescript 和 node ... 和 swagger-jsdoc?
    【解决方案3】:

    您可以使用 jsdoc。为此,您需要安装 npm 包

    npm i swagger-jsdoc
    npm I swagger-ui-express
    

    请参考

    node js swagger with express server

    【讨论】:

      猜你喜欢
      • 2018-09-27
      • 2017-06-14
      • 1970-01-01
      • 2017-02-26
      • 1970-01-01
      • 2021-03-08
      • 2022-01-23
      • 1970-01-01
      • 2021-07-08
      相关资源
      最近更新 更多