如何使用 Express Swagger Generator 在同一条路线上定义多个操作

How to define multiple operations on the same route using Express Swagger Generator

我正在使用 npm 包 express-swagger-generator,当我像这样定义 2 条路由时:

/**
 * @group Users - operations about user
 * @route GET /users
 * @route POST /users
 */

它只显示 POST 路由而不显示像 this

这样的 GET 路由

如果我切换它们,它只显示 GET 路由,同样适用于使用 @group 标记在不同的地方定义它们两次。

如何在我的 api 文档中显示 /users 上的 POST 和 GET 路由?

查看 source,特别是 swagger.js,第 85 行:

parameters[route.uri] = {}

这一行基本上会擦除任何先前为给定路线解析的 methods/params/etc。该库似乎没有设计或尚未开发得足够远,以允许为单个函数注册多个路由(甚至在多个函数上——这对我个人来说似乎是一个交易破坏者)。

如果这是您喜欢的,我建议针对该存储库提出问题,甚至更好。提出问题并提出合并请求。

就我个人而言,我确实相信实现可以包含此功能,因为在当今基于 REST 的 API 中公开具有多个动词的相同路径是很常见的。

建议的更改可能如下所示:

parameters[route.uri] = parameters[route.uri] || {}
parameters[route.uri][route.method] = parameters[route.uri][route.method]  || {}