我想使用模式或示例扩展“200成功默认”响应。
paths:
/home:
...
responses:
200:
$ref: '#/components/responses/200SuccessDefault'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PieChartElement'
examples:
PieChart:
$ref: '#/components/examples/PieChart_1'
这种方法会遇到错误,schema
和示例
字段被忽略:
$refs旁边的同级值被忽略。要向$ref添加属性,请将$ref包装到allOf中,或将额外的属性移动到引用的定义中(如果适用)。
我尝试了allOf
:
paths:
/home:
responses:
200:
allOf:
- $ref: '#/components/responses/200SuccessDefault'
- content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PieChartElement'
examples:
PieChart:
$ref: '#/components/examples/PieChart_1'
这种方法会遇到错误:
不应该有额外的属性addtionalProperty: allOf
应该有必需的属性“描述”缺失属性:描述
您不能扩展引用的响应对象。但是,您可以使用共享模式对象并利用模式中的allOf对其进行扩展。
里面allOf你可以把:
如果你想给出一个完整的扩展响应(JSON)的例子,只需将其放入“application/json”。
OpenAPI的一个示例是:
"202":
description: Extended response sample
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/application"
- type: object
properties:
anotherProperty:
type: string
maxLength: 200
example: "Property example"
example: {id: 1234, anotherProperty: "Hello"}