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