这些OpenAPI 3路径是否有歧义? [英] Are those OpenAPI 3 paths ambiguous?

查看:18
本文介绍了这些OpenAPI 3路径是否有歧义?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这些OpenAPI 3路径是不明确的吗?

/shops/{shopId}/pets/{petId}   
/shops/{shopId}/pets/_search

我想回答但是,严格阅读规范,我无法决定,因为它们似乎不属于规范所做的3个陈述中的任何一个:

  1. 这两条路径都不是具体(规范中使用的术语)
  2. 路径似乎不符合具有相同层次结构但不同模板化名称的模板化路径条件(我不是很清楚):"/shops/{}/pets/{}" != "/shops/{}/pets/_search "
  3. 路径看起来不像不明确的示例

下面是OA3规范的摘录(仅此而已:我的问题在第一行)。

OA3规范摘录

OpenAPI 3规范的路径对象段落(https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.0.md#paths-object)说明(3句话,3条语句):

当匹配URL时,具体(非模板化)路径将在其模板化对应路径之前匹配。具有相同层次结构但不同模板名称的模板路径不能存在,因为它们是相同的。如果匹配不明确,则由工具决定使用哪一个。

这3条语句后面跟着3个示例(仅此而已):

假设有以下路径,具体的定义/perts/my, 如果使用,将首先匹配:

/perts/{petID}
/宠物/我的

下列路径被视为相同和无效:

/perts/{petID}
/宠物/{姓名}

以下内容可能会导致不明确的解决方案:

/{实体}/我
/book/{id}

推荐答案

我对该规范的理解是它们并不含糊,因为一个比另一个更具体。如果{petId}参数值设置为_search,则更具体的优先。

这篇关于这些OpenAPI 3路径是否有歧义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆