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

时间:2019-04-07 18:42:16

标签: node.js swagger openapi

我正在为node.js服务器使用express-openapi npm模块。为此,我需要使用openapi v3这样的/ ressources / {action}创建通用的url,其中将包括所有类型的操作,而我期望将其具体描述为/ ressources / action1和/ ressources / action2 在这里,我如何描述url路径中的通用参数:

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

没有路径参数的情况下单独描述了具体网址。

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

我还尝试枚举如下所有可能的一般动作:

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

但是action1和action2始终与通用网址匹配

1 个答案:

答案 0 :(得分:1)

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

  

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

     

...

     

路径模板匹配

     

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

/pets/{petId}
/pets/mine

服务器始终选择通用URL的事实是一个错误(或未实现的功能?)。您应该使用任何服务器框架来解决问题。