在openapi v3中创建一个通用路径以及一个特定路径

问题描述 投票:0回答:1

我正在为node.js服务器使用express-openapi npm模块。我需要为此目的创建一个使用openapi v3的通用URL,就像这个/ ressources / {action}一样,包括所有类型的操作,期望我特别描述的几个/ ressources / action1和/ ressources / action2这里我怎么描述url路径中的泛型参数:

    action:
      name: action
      in: path
      required: true
      schema:
        type: string
        not:
          enum: ['action1', 'action2']

具体的URL是在没有路径参数的情况下单独描述的。

问题在于每当我启动服务器并调用例如/ ressources / action1时,它都会调用通用URL。我认为通用操作路径参数枚举存在问题。在这种情况下,有人可以帮助弄清楚如何正确匹配我的请求和相应的网址吗?

我还尝试枚举所有通用的可能动作,如下所示:

    action:
      name: action
      in: path
      required: true
      schema:
        type: string
        enum: ['action3', 'action4', 'action5', 'action6']

但action1和action2始终匹配通用URL

node.js swagger openapi
1个回答
1
投票

这两个定义都是正确的,根据OpenAPI Specification

匹配URL时,具体(非模板化)路径将在其模板化对应物之前进行匹配。

...

路径模板匹配

假设以下路径,具体定义/pets/mine将首先匹配使用:

/pets/{petId}
/pets/mine

服务器总是选择通用URL的事实是一个错误(或未实现的功能?)。您应该使用您正在使用的任何服务器框架打开问题。

© www.soinside.com 2019 - 2024. All rights reserved.