首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django ReDoc中添加PHP和ReDoc的请求示例

如何在Django ReDoc中添加PHP和ReDoc的请求示例
EN

Stack Overflow用户
提问于 2020-02-27 12:05:58
回答 1查看 581关注 0票数 1

我使用drf包作为Django Rest文档。默认情况下,它只显示一个名为"Payload“的请求示例,如下面的链接所示。https://i.stack.imgur.com/1Pno2.jpg,我想添加更多的请求样例,如下图所示。https://i.stack.imgur.com/yy9tv.png

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-13 10:40:48

如果从get_operation类重写方法SwaggerAutoSchema,则可以添加它。

代码语言:javascript
复制
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')}
        )

然后,您可以在视图中使用此架构。

代码语言:javascript
复制
class MyViewSet(viewsets.ModelViewSet):
    swagger_schema = CustomAutoSchema

并在视图方法中添加装饰器:

代码语言:javascript
复制
@swagger_auto_schema(
        code_examples=[
            {
                'lang': 'bash',
                'source': 'curl -H "Authorization: Token YOUR-API-KEY" https://developers.typless.com/api/document-types/'
            },
        ]
    )

您可以在这个博客。上阅读更多内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60432870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档