【问题标题】:How to use $ref to reference a path from another OpenAPI file?如何使用 $ref 引用另一个 OpenAPI 文件的路径?
【发布时间】:2019-11-18 06:36:45
【问题描述】:

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

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

paths:
  /a/b:
    post:

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

paths:
  /c/d:
    $ref: 'Anotherfile.yaml#/paths/a/b'

但这会报错:

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

【问题讨论】:

    标签: openapi


    【解决方案1】:

    引用路径时,您需要将/ 替换为~1,从而将/a/b 替换为escape the path name,以便/a/b 变为~1a~1b。请注意,您只转义了路径名,而不是 #/paths/ 前缀。

    $ref: 'Anotherfile.yaml#/paths/~1a~1b'
    

    【讨论】:

    • 顺便说一句,为什么“引用某事”而不是“引用某事”>。
    • @Tiina 我不是母语人士。 “引用 smth”在语法上更正确吗? OpenAPI Specification 使用术语“引用”,例如“如果引用模式,...”
    • 我遇到的另一个用例是在另一个Object Schema 中引用Object Schemapropertyproperties 的一部分)。可以通过更具体的 JSON 指针来实现这一点——$ref: './my-other-schema#/properties/propToImport
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 2020-08-04
    • 2018-09-16
    相关资源
    最近更新 更多