即时通讯使用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)
我能做什么?
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)
这很好。这在响应部分显示了必填字段。但是由于用该参数的方法测试了该方法,因此在参数部分中是否有类似的方法?
我认为
manual parameters
是您所需要的。我已经更新了答案。多数民众赞成在..thx帮助兄弟...
老兄我测试了它,它不起作用..它向我显示参数,但是当我要填充它们时,我重新显示了错误信息(invalid_data)...
更新您的问题。发布您需要的序列化器和参数