Создание фальшивой модели в djanago rest framework без переноса ее для использования в swagger

Я пытаюсь реализовать swagger ui в Django Rest Framework с помощью drf-spectacular. У меня еще нет никакой базы данных, и на этом этапе я не хочу реализовывать или создавать какую-либо базу данных или таблицу. Я только хочу создать API-контракт с различными конечными точками и показать требуемые и ответные типы данных в swagger ui.

Мой вопрос заключается в том, как я могу создать модель (фальшивую модель) без ее реализации и миграции?

Вы можете создать сериализатор и реализовать в нем все необходимые поля. Если вам нужны разные сериализаторы для запроса и ответа, просто передайте их в декораторе swagger_auto_schema. Используйте параметр 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)
Вернуться на верх