drf-effectular: укажите пустую полезную нагрузку с помощью @extend_schema
Считайте, что у меня есть простая точка зрения:
# serializers.py
class EmptyPayloadResponseSerializer(serializers.Serializer):
detail = serializers.CharField()
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from drf_spectacular.utils import extend_schema
from .serializers import EmptyPayloadResponseSerializer
class EmptyPayloadAPI(APIView):
@extend_schema(responses=EmptyPayloadResponseSerializer)
def post(self, request, *args, **kwargs):
# some actions
return Response(data={"detail": "Success"})
Когда я визуализирую схему, я получаю следующий ответ об ошибке:
Ошибка № 0: EmptyPayloadAPI: невозможно угадать сериализатор. Это изящная обработка отказа для APIViews. Рассмотрите возможность использования GenericAPIView в качестве базового класса представления, если представление находится под вашим контролем. Пока игнорируем просмотр.
Итак, как я могу сказать
@extend_schema
декоратор, что я не собираюсь ничего передавать в качестве полезной нагрузки?
1 ответ
Настройки
request=None
в
@extend_schema(...)
декоратор сделает свое дело !!!
class EmptyPayloadAPI(APIView):
@extend_schema(request=None, responses=EmptyPayloadResponseSerializer)
def post(self, request, *args, **kwargs):
# some actions
return Response(data={"detail": "Success"})