快速提问:OpenAPI 规范是否要求在将当前 URL 与路径匹配之前对验证器进行 URL 规范化?再一次,我发现正在使用的验证器似乎有缺陷,因为它会将规则应用于 /abc/path,但不应用于 /abc/path/(请注意额外的 /)。
谢谢。
快速提问:OpenAPI 规范是否要求在将当前 URL 与路径匹配之前对验证器进行 URL 规范化?再一次,我发现正在使用的验证器似乎有缺陷,因为它会将规则应用于 /abc/path,但不应用于 /abc/path/(请注意额外的 /)。
谢谢。
OAS 将 URL 规范化和等效性问题推迟到 URI/URL 的相关标准:RFC3986(一般)和 RFC9110(针对 http: 和 https: 特定规则)。
因此,这里的问题是,没有标准定义 /abc/path 和 /abc/path/ 之间的等价性。RFC9110 仅定义仅由“ /”组成的路径等同于空路径。但并非尾随“/”通常等同于没有尾随“/”的路径。它们只是恰好是相同的常见惯例。因此,OAS 无法在此处强制执行任何操作,因为创建一个 API 来让 /abc/path 和 /abc/path/ 定位不同的资源是有效的。这可能不是一个好主意,但 RFC9110 允许这样做。
附言:OASComply 无限期搁置(我是作者)。这是一个概念验证,证明了该规范存在歧义,因此我们制作了 OAS 3.0.4 和 3.1.1 来改善这种情况,并将继续这项工作,今年将推出 3.2。我们最终会回到 OASComply。