Warm tip: This article is reproduced from serverfault.com, please click

django-摇摇欲坠的POST和PUT方法的有效载荷

(django - payload for POST and PUT methods in swagger)

发布于 2020-11-28 09:30:36

即时通讯使用yasg库为我的api创建文档..但是我有一个问题:GET和DELETE方法很好,但是当我想使用POST或PUT方法时,我无法为它们定义有效负载..在参数部分,它说:没有参数这是我的代码:

class CreateGroupView(APIView):
    def post(self, request):
        try:
            serializer = GroupSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status.HTTP_201_CREATED)
            else:
                return Response(status=status.HTTP_400_BAD_REQUEST)
        except:
            return Response({'data': 'somethings wrong'}, status.HTTP_500_INTERNAL_SERVER_ERROR)

我能做什么?

Questioner
erfanmorsali
Viewed
11
Crosby 2020-11-28 17:59:21
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema

type_param = openapi.Parameter('type', in_=openapi.IN_QUERY, description='Type parameter', type=openapi.TYPE_INTEGER)
q_param = openapi.Parameter('q', in_=openapi.IN_QUERY, description='Seach query', type=openapi.TYPE_STRING)

class CreateGroupView(APIView):

    @swagger_auto_schema(
        responses={status.HTTP_201_CREATED: GroupSerializer()},
        operation_description="Some description here...",
        manual_parameters=[type_param, q_param]
    )
    def post(self, request):
        try:
            serializer = GroupSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status.HTTP_201_CREATED)
            else:
                return Response(status=status.HTTP_400_BAD_REQUEST)
        except:
            return Response({'data': 'somethings wrong'}, status.HTTP_500_INTERNAL_SERVER_ERROR)