Декоратор 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