我正在为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
这两个定义都是正确的,根据OpenAPI Specification:
匹配URL时,具体(非模板化)路径将在其模板化对应物之前进行匹配。
...
路径模板匹配
假设以下路径,具体定义
/pets/mine
将首先匹配使用:/pets/{petId} /pets/mine
服务器总是选择通用URL的事实是一个错误(或未实现的功能?)。您应该使用您正在使用的任何服务器框架打开问题。