如何使用 $ref 引用另一个 OpenAPI 文件的路径?

Tii*_*ina 19 openapi

这里说我可以引用另一个文件中的定义来获取单个路径,但该示例似乎引用了整个文件,而不是对象下的单个路径定义paths。如何在另一个文件的paths对象中分配单独的路径?

例如,我有Anotherfile.yaml包含路径/a/b:

paths:
  /a/b:
    post:
Run Code Online (Sandbox Code Playgroud)

在另一个文件中,我使用如下方式$ref引用路径:/a/b

paths:
  /c/d:
    $ref: 'Anotherfile.yaml#/paths/a/b'
Run Code Online (Sandbox Code Playgroud)

但这给出了一个错误:

在 ./Anotherfile.yaml 的内容中找不到路径/a/b

Hel*_*len 32

引用路径时,需要通过替换为来转义路径名,使其变为。请注意,您仅转义路径名而不是前缀。/~1/a/b~1a~1b#/paths/

$ref: 'Anotherfile.yaml#/paths/~1a~1b'
Run Code Online (Sandbox Code Playgroud)

  • @Tiina 我不是母语人士。“torefer smth”在语法上更正确吗?[OpenAPI 规范](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md) 使用术语“引用”,例如“如果引用模式,...” (6认同)