是否可以在 OpenAPI 3 中引用单个路径和方法?
Is it possible to reference a single path and method in OpenAPI 3?
假设我有一个 OpenAPI 3 文档描述 API Foo
如下:
openapi: 3.0.0
info:
version: '1'
title: Foo
paths:
/foo:
get:
responses:
200:
description: A Foo
post:
responses:
201:
description: Foo created
在 API Bar
的另一个 OpenAPI 文档中,我想参考 仅 来自 GET /foo
的操作APIFoo
。 OpenAPI 文档 talk a little about referencing a whole path。但是,如果我执行以下操作:
openapi: 3.0.0
info:
version: '1'
title: Bar
paths:
/foo:
$ref: 'foo.yaml#/paths/~1foo'
APIBar
里面的GET
和POST
我自然都得到了,因为只引用了路径,没有引用方法
我试过这个:
openapi: 3.0.0
info:
version: '1'
title: Bar
paths:
/foo:
get:
$ref: 'foo.yaml#/paths/~1foo/get'
但这会在各种工具中出现 should NOT have additional properties additionalProperty: $ref
和 should have required property 'responses' missingProperty: responses
之类的错误,因此它似乎不受支持。
有没有办法做到这一点?我应该注意到真正的请求要复杂得多,因此需要去重。如果可能的话,我想避免用单个 $ref
s.
填充 get
的许多子对象
OpenAPI 无法$ref
单个操作(get
/post
/等),您只能$ref
整个路径。
您可以在 OpenAPI 规范存储库中提出语法增强:
https://github.com/OAI/OpenAPI-Specification/issues
假设我有一个 OpenAPI 3 文档描述 API Foo
如下:
openapi: 3.0.0
info:
version: '1'
title: Foo
paths:
/foo:
get:
responses:
200:
description: A Foo
post:
responses:
201:
description: Foo created
在 API Bar
的另一个 OpenAPI 文档中,我想参考 仅 来自 GET /foo
的操作APIFoo
。 OpenAPI 文档 talk a little about referencing a whole path。但是,如果我执行以下操作:
openapi: 3.0.0
info:
version: '1'
title: Bar
paths:
/foo:
$ref: 'foo.yaml#/paths/~1foo'
APIBar
里面的GET
和POST
我自然都得到了,因为只引用了路径,没有引用方法
我试过这个:
openapi: 3.0.0
info:
version: '1'
title: Bar
paths:
/foo:
get:
$ref: 'foo.yaml#/paths/~1foo/get'
但这会在各种工具中出现 should NOT have additional properties additionalProperty: $ref
和 should have required property 'responses' missingProperty: responses
之类的错误,因此它似乎不受支持。
有没有办法做到这一点?我应该注意到真正的请求要复杂得多,因此需要去重。如果可能的话,我想避免用单个 $ref
s.
get
的许多子对象
OpenAPI 无法$ref
单个操作(get
/post
/等),您只能$ref
整个路径。
您可以在 OpenAPI 规范存储库中提出语法增强:
https://github.com/OAI/OpenAPI-Specification/issues