我将SwaggerHub与OpenAPI 3一起使用来定义API。一种路由GET /foo/{id]
应该返回给定foo
的{{1}}对象及其关联的id
对象。该API将返回类似:bar
的信息。即{id: 4, name: 'test', bars: [{id: 53, name: 'barName1'}, {id: 87, name: 'barName2'}]}
和foo
之间存在多对多关系。
如何用OpenAPI 3语法描述这一点?我尝试使用anyOf
属性。到目前为止,我有:
bar
但是,这似乎并未在UI中显示正确的架构(UI中未提及paths:
/foo/{id}:
get:
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Foo'
anyOf:
- $ref: '#/components/schemas/Bar'
)。
答案 0 :(得分:0)
您不需要anyOf
。 anyOf
表示备选方案(“ Foo或Bar”),而您具有通常的嵌套结构-具有属性Foo
的对象bars
,它是Bar
的数组s。可以这样描述:
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Foo'
components:
schemas:
Foo:
type: object
properties:
bars:
type: array
items:
$ref: '#/components/schemas/Bar'
required:
- bars
Bar:
...