首页 > 解决方案 > Open API 3 中路径的优先级

问题描述

express-openapi-validator在我的 Node.js 项目中使用了一个 openapi 验证器 (),但无法弄清楚如何控制匹配路径的顺序。

如果我有 2 条路径,例如,

/foo/{type}
   parameters:
     - name: type
       schema:
          type: string
          enum: ['bar', 'bam']

/foo/bar

对于对 的请求/foo/bar,总是匹配第二条路径。

我如何控制这场比赛的优先级?

标签: node.jsswaggeropenapiexpress-openapi-validator

解决方案


对于对 的请求/foo/bar,总是匹配第二条路径。

这是正确和预期的行为。OpenAPI 规范规定,在类似的模板路径之前必须匹配特定路径 - 请参阅路径模板匹配。这不应该是可配置的,否则行为将与规范相矛盾。

要让请求由/foo/bar处理/foo/{type},您需要/foo/bar从 API 定义中删除路径。


推荐阅读