【发布时间】:2022-08-19 00:08:42
【问题描述】:
是否可以为非 200 响应(例如 400)添加 examples:?
我注意到对 200 和 400 使用相同的序列化程序会正确生成模式,但不包括 400 响应中的示例。
@extend_schema_serializer(
component_name=\"CostResponse\",
examples=[
OpenApiExample(
name=\"A Great Example!\",
value={\"field\": \"Example Value\"}
)
]
)
class CostResponseSerializer(Serializer):
field = CharField(help_text=\"Thing\")
class CostView(APIView):
\"\"\"Return the cost of goods sold\"\"\"
@extend_schema(
summary=\"Get Cost\",
responses={
200: CostResponseSerializer,
400: CostResponseSerializer,
406: OpenApiResponse(
response=CostResponseSerializer,
examples=[ # custom
OpenApiExample(name=\"Also not included\"),
]
)
},
)
def get(self, request):
pass
我想为每个端点提供不同的示例,但得到任何东西都会有所帮助。
/api/what/:
get:
operationId: api_what_retrieve
summary: Get Cost
responses:
\'200\':
content:
application/json:
schema:
$ref: \'#/components/schemas/CostResponse\'
examples:
AGreatExample!:
value:
field: Example Value
summary: A Great Example!
\'400\':
content:
application/json:
schema:
$ref: \'#/components/schemas/CostResponse\'
\'406\':
content:
application/json:
schema:
$ref: \'#/components/schemas/CostResponse\'
-
我已经放弃并编写了一个帖子挂钩,将示例直接添加到
schemas/CostResponse。我找不到将示例添加到代码中的模式或字段的方法。