我尝试在Django Rest Framework中使用drf-spectacular来实现swagger UI。我还没有安装任何数据库,在这个阶段我不想实现或创建任何数据库或表。我只想创建一个具有不同端点的API契约,并在swagger UI中显示所需和响应的数据类型。我的问题是,我如何创建一个模型(假模型)而不实现它,也不迁移它?
juud5qan1#
你可以创建一个序列化器,并在那里实现所有必需的字段。如果你需要不同的序列化器来处理请求和响应,只需在swagger_auto_schema decorator中传递它们。对请求一使用request_body参数,对响应使用responses参数。下面是一个例子:
class MyRequestSerializer(serializers.Serializer): first_name = serializers.Charfield(max_length=128) last_name = serializers.Charfield(max_length=128, allow_blank=True) class MyResponseSerializer(serializer.Serializer): my_custom_response_field = serializers.IntegerField() class MyAPIView(APIView): @swagger_auto_schema(request_body=MyRequestSerializer(), responses={200: MyResponseSerializer()}) def get(self, request, format=None): request_data = MyRequestSerializer(request.data) do_smth response_serializer = MyResponseSerializer(request_data) return Response(response_serializer.data)
1条答案
按热度按时间juud5qan1#
你可以创建一个序列化器,并在那里实现所有必需的字段。如果你需要不同的序列化器来处理请求和响应,只需在swagger_auto_schema decorator中传递它们。对请求一使用request_body参数,对响应使用responses参数。下面是一个例子: