【问题标题】:How can I customize drf-yasg endpoints's example response?如何自定义 drf-yasg 端点的示例响应?
【发布时间】:2022-11-02 05:21:32
【问题描述】:

在我的 Django 项目中,我使用的是 DRF 和 drf-yasg。在某些端点,示例响应正文显示了不正确的示例。像下面的例子:

但其中一些没有显示正确的示例响应正文。

此端点实际上返回 access_token 和 refresh_token,不返回电子邮件和密码。对于前端开发人员来说,这是错误的信息。有什么办法可以改变这个吗?

【问题讨论】:

  • 以上两张图,哪一张是正确的,哪一张是错误的?您还可以共享各个端点的序列化程序和视图吗
  • 第一个是正确的,它们都是简单 jwt 的 API。我没有改变他们的任何东西。我实际上想自定义招摇的 UI

标签: django django-rest-framework drf-yasg


【解决方案1】:

下面是一个使用带有 3 个序列化程序的 @swagger_auto_schema 注释的示例。 1 个请求序列化器和 2 个响应序列化器(成功和错误序列化器)。

class RequestSerializer(serializers.Serializer):
   param = serializers.CharField()

                  
class SucessSerializer(serializers.Serializer):
   success = serializers.BooleanField()
   message = serializers.CharField()

                     
class ErrorSerializer(serializers.Serializer):
   success = serializers.BooleanField()
   errors = serializers.IntegerField()

class ExampleViewView(APIView):

    @swagger_auto_schema(
        request_body = RequestSerializer,
        responses={
            '200': SucessSerializer,
            '500': ErrorSerializer,
        },
        operation_description = 'Doc description'
    )
    def post(self, request):
        
        return successResponse({
            'sucess': True
        })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 2021-08-11
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多