如何使用 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] || {}
我正在使用 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] || {}