同一段中具有多个变量的 OpenAPI 路径是否有效?

Is an OpenAPI path with multiple variables in the same segment valid?

以下是否有效?

GET image/{id}/{palette}.{file_extension}

我希望能够做这样的事情: 示例:

GET image/1/falsecolor.jpg
GET image/4/alternative.png
GET image/9/falsecolor.tiff

基本上,调色板定义了图像是如何着色的(调色板),扩展名是更适合您的应用程序的文件格式(移动设备最适合一种文件格式,网络最适合另一种文件格式,等等),全部打开API linters 我试过验证它,我在 OpenAPI 的文档中找不到任何内容表明这不是一种有效的方法,但是当我将它上传到 Postman 时,它很无聊面目全非,将调色板和文件扩展名都作为集合变量而不是 API 属性加载,而且 Postman 应该是 OpenAPI compliant/compatible,所以我想知道这是否实际上是非符合路径参数。

是的,部分路径参数在 OpenAPI 中有效。

但是,如果参数值包含分隔符,他们可以result in ambiguous parsing。例如,给定路径模板 /{palette}.{file_extension} 和请求 URL /false.color.jpg,服务器应该采用什么值?

  • palette="false"
    file_extension="color.jpg"
  • palette="false.color"
    file_extension="jpg"

一些工具(特别是AWS API Gateway)选择不支持部分路径参数并要求路径参数占据整个路径段(即/{foo}/{bar}而不是/{foo}.json/{foo}-{bar}).

邮递员已发送确认行为的答复,这是他们实施中的当前限制。

There are limitations to our current collection format, which does not allow more than one path variable within a path segment for example - /files/{file-id}.{format} and also parts of the path segment can't be delimited as a path variable for example - /file.{format}. In order to overcome this current limitation, we use collection variables to represent this path variable. This will not break any behavior but at the same time, information loss from OpenAPI is expected. Having said that users can rely on schema documentation which doesn't have these limitations and preserve the path parameters as configured by the users.

他们还说这是他们希望在未来改变的东西,只是暂时没有 ETA。

我要感谢所有花时间回答这个问题的人,这对我帮助很大。