我使用drf包作为Django Rest文档。默认情况下,它只显示一个名为"Payload“的请求示例,如下面的链接所示。https://i.stack.imgur.com/1Pno2.jpg,我想添加更多的请求样例,如下图所示。https://i.stack.imgur.com/yy9tv.png
发布于 2020-05-13 10:40:48
如果从get_operation类重写方法SwaggerAutoSchema,则可以添加它。
from drf_yasg.inspectors import SwaggerAutoSchema
class CustomAutoSchema(SwaggerAutoSchema):
def get_operation(self, operation_keys=None):
operation_keys = operation_keys or self.operation_keys
consumes = self.get_consumes()
produces = self.get_produces()
body = self.get_request_body_parameters(consumes)
query = self.get_query_parameters()
parameters = body + query
parameters = filter_none(parameters)
parameters = self.add_manual_parameters(parameters)
operation_id = self.get_operation_id(operation_keys)
summary, description = self.get_summary_and_description()
security = self.get_security()
assert security is None or isinstance(security, list), "security must be a list of security requirement objects"
deprecated = self.is_deprecated()
tags = self.get_tags(operation_keys)
responses = self.get_responses()
return openapi.Operation(
operation_id=operation_id,
description=force_real_str(description),
summary=force_real_str(summary),
responses=responses,
parameters=parameters,
consumes=consumes,
produces=produces,
tags=tags,
security=security,
deprecated=deprecated,
**{'x-code-samples': self.overrides.get('code_examples')}
)然后,您可以在视图中使用此架构。
class MyViewSet(viewsets.ModelViewSet):
swagger_schema = CustomAutoSchema并在视图方法中添加装饰器:
@swagger_auto_schema(
code_examples=[
{
'lang': 'bash',
'source': 'curl -H "Authorization: Token YOUR-API-KEY" https://developers.typless.com/api/document-types/'
},
]
)您可以在这个博客。上阅读更多内容。
https://stackoverflow.com/questions/60432870
复制相似问题