Декоратор DRF @api_view добавит к функции возможность расширять то, что предлагает ApiView для классов. Например, он преобразует полученный HTTPRequest в объект DRF Request. В соответствии с этим он преобразует возвращаемый ответ в объект DRF Response вместо HTTPResponse.

Как это определить.

Все, что вам нужно сделать, это просто добавить его в качестве декоратора к вашей функции. Например:

from rest_framework.decorators import api_view


@api_view()
def your_cool_function(request):
    """
        Function definition
    """

Как и любой другой декоратор DRF, этот декоратор принимает единственный аргумент, представляющий собой список методов HTTP, которые он должен принимать.

По умолчанию DRF @api_view принимает HTTP-метод GET. Поэтому, чтобы он принимал другие методы, просто добавьте их в список аргументов следующим образом:

from rest_framework.decorators import api_view


@api_view(['GET', 'POST'])
def your_cool_function(request):
    """
        Your cool function that now supports GET and POST
        HTTP methods.
    """

Важное ноу-хау.

Итак, теперь, когда вы знаете, что такое DRF api_view и как его определить, ВАЖНО принять к сведению следующие указатели:

  • 1. Он должен стоять первым в списке декораторов для данного метода, будь то пользовательский или любой другой декоратор DRF.
  • 2. Будут использоваться настройки по умолчанию, указанные в файле настроек в словаре REST_FRAMEWORK. К ним относятся аутентификация, рендереры и синтаксические анализаторы, и это лишь некоторые из них.
  • 3. По умолчанию разрешен только метод GET. Чтобы разрешить другие методы HTTP, добавьте их в виде списка аргументов. Обратите внимание, что вам также необходимо включить метод GET в этот список, если вы все еще хотите его поддерживать.

Вывод.

Как видите, легко определить и использовать декоратор DRF api_view.

Удачного программирования!

Вы заинтересованы в изучении Django Rest Framework? Посмотрите похожие классные статьи на моем сайте: Binge On Code › Django Rest Framework