Djangorestframework: использовать kwargs вместо запросов

Мой код пестрит большим количеством ключей парсинга из request.data объектов внутри функций, что затрудняет отслеживание потока данных. Как я могу перейти от

к
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
@api_view(["POST"])
@permission_classes([IsAuthenticated])
def greet(request):
    # FYI for Character.AI we use the chat and not this stateless_chat view.
    payload = request.data

    user = payload.get("user", "test")
    friend = payload.get("friend", "bart")
    num_friends = int(payload.get("num_friends", 16))
    return None

to

@api_view(["POST"])
@permission_classes([IsAuthenticated])
def greet(user:str='test', friend:str='bart', num_friends:int=16):
    return None

Вы можете взглянуть на DRF Serializers (https://www.django-rest-framework.org/api-guide/serializers/). Помимо очистки кода они предоставляют дополнительные преимущества, например, валидацию.

Это не совсем то, что вы хотели (я не думаю, что это вообще возможно), но использование сериализаторов - это следование лучшим практикам работы с DRF.

Вернуться на верх