Swagger 打开API 3.0.0:引用的文件无法访问父组件

Swagger 打开API 3.0.0:引用的文件无法访问父组件,swagger,swagger-ui,openapi,Swagger,Swagger Ui,Openapi,当主页引用文件时,使用Open API 3.0.0,如下所示: file: main.yaml ... /ping: $ref: './dependency.yaml/#/foo' ... components: responses: Response: type: string 并且依赖项文件正在使用来自主服务器的响应: file: dependency.yaml ... /ping: $ref: '#/components/r

当主页引用文件时,使用Open API 3.0.0,如下所示:

file: main.yaml
...
/ping:
    $ref: './dependency.yaml/#/foo'
...
components:
    responses:
        Response:
            type: string
并且依赖项文件正在使用来自主服务器的响应:

file: dependency.yaml
...
/ping:
    $ref: '#/components/responses/Response'
...
这是行不通的,因为他只是想从内心解决问题。 我尝试过不同的方法,但没有成功:

'..#/components/responses/Response'
'../#/components/responses/Response'
'#/../components/responses/Response'

有办法吗?我真不敢相信,除了处理一个大文件,我没有其他解决方案。

任何外部
$ref
路径都必须包含文件路径。如果
dependency.yaml
需要引用
main.yaml
,则
$ref
应该如下所示

$ref: './main.yaml#/components/responses/Response'

$ref没有“父”/“子”文件的概念,它们总是在当前文件的上下文中解析。

当ref不在主文件中时,使用swagger ui,例如在
dep/foo.yaml
中使用
/
引用当前文件。在这里,
foo.yaml

因此,
。/
正在引用
dep
文件夹


访问引用文件中父文件夹的解决方案是
。/../main.yaml

我也尝试过,但嵌套引用无法处理