gpt4 book ai didi

django - 如何记录基于函数的 View 参数?

转载 作者:行者123 更新时间:2023-12-03 16:41:12 28 4
gpt4 key购买 nike

我正在使用 Django 1.11 和 Django REST Framework 3.7 开发 REST API。我安装了 Django REST Swagger 2.1 生成文档。

我正在使用这样的基于函数的 View :

from rest_framework.decorators import api_view, permission_classes

@api_view(['POST'])
@permission_classes((permissions.AllowAny,))
def jwt_auth(request, provider, format=None):
"""
View description here
"""
pass

Generated documentation by Swagger

如您所见,我的 View 被 Swagger 识别,并且具有正确的描述:“在此处查看描述”。

然而:
  • 您可以看到 provider 的“描述”列是空的网址参数。
  • POST 参数没有记录(显然,因为 Swagger 无法知道它们)

  • 如何为基于函数的 View 的 URL 和 POST 参数以及响应编写文档?

    我试过 YAML Docstrings但它似乎适用于旧版本(0.3.x),并且不适用于 2.x 版。

    最佳答案

    您可以使用 DjangoRestFrameWork 的架构。
    http://www.django-rest-framework.org/api-guide/schemas/
    在您的情况下,您可以尝试以下操作。

    from rest_framework.decorators import api_view, permission_classes, schema
    from rest_framework import permissions

    @api_view(['POST'])
    @permission_classes((permissions.AllowAny,))
    @schema(custom_schema)
    def jwt_auth(request, provider, format=None):
    """
    View description here
    """
    pass

    自定义模式定义
    import coreapi, coreschema
    from rest_framework.schemas import AutoSchema, ManualSchema

    custom_schema = AutoSchema(manual_fields=[
    coreapi.Field("username", required=True, location="form", type="string", description="username here"),
    coreapi.Field("password", required=True, location="form", type="string", description="password field")
    ])
    应该做的伎俩。
    有关更多详细信息,请访问我在顶部提供的链接。基本的 POST 和 GET 参数应该以这种方式工作。

    关于django - 如何记录基于函数的 View 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47254522/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com