Django REST framework

Django REST framework - это мощный и гибкий набор инструментов для создания Web API.

Некоторые причины, по которым вы можете захотеть использовать REST framework:


Требования

REST framework требует следующего:

  • Python (3.6, 3.7, 3.8, 3.9, 3.10, 3.11)

  • Django (3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0)

Мы настоятельно рекомендуем и официально поддерживаем только последние выпуски патчей каждой версии Python и Django.

Следующие пакеты являются необязательными:

  • PyYAML, uritemplate (5.1+, 3.0.0+) - Поддержка генерации схем.

  • Markdown (3.0.0+) - Поддержка Markdown для Web-интерфейса API.

  • Pygments (2.4.0+) - Добавление подсветки синтаксиса в обработку Markdown.

  • django-filter (1.0.1+) - Поддержка фильтрации.

  • django-guardian (1.1.1+) - Поддержка разрешений на уровне объектов.

Установка

Установите с помощью pip, включая все дополнительные пакеты, которые вы хотите...

pip install djangorestframework
pip install markdown       # Markdown support for the browsable API.
pip install django-filter  # Filtering support

...или клонируйте проект с github.

git clone https://github.com/encode/django-rest-framework

Добавьте 'rest_framework' в настройку INSTALLED_APPS.

INSTALLED_APPS = [
    ...
    'rest_framework',
]

Если вы планируете использовать Web-интерфейс API, вы, вероятно, также захотите добавить представления входа и выхода из системы REST framework. Добавьте следующее в ваш корневой файл urls.py.

urlpatterns = [
    ...
    path('api-auth/', include('rest_framework.urls'))
]

Обратите внимание, что путь URL может быть любым, какой вы захотите.

Пример

Давайте рассмотрим быстрый пример использования REST-фреймворка для создания простого API с поддержкой модели.

Мы создадим API с функцией чтения-записи для доступа к информации о пользователях нашего проекта.

Все глобальные настройки для API REST-фреймворка хранятся в одном конфигурационном словаре с именем REST_FRAMEWORK. Начните с добавления следующих параметров в модуль settings.py:

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}

Не забудьте убедиться, что вы также добавили rest_framework в INSTALLED_APPS.

Теперь мы готовы к созданию нашего API. Вот корневой модуль нашего проекта urls.py:

from django.urls import path, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets

# Serializers define the API representation.
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ['url', 'username', 'email', 'is_staff']

# ViewSets define the view behavior.
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

Теперь вы можете открыть API в браузере по адресу http://127.0.0.1:8000/ и просмотреть новых "пользователей" API. Если вы используете элемент управления входом в систему в правом верхнем углу, вы также сможете добавлять, создавать и удалять пользователей из системы.

Быстрый старт

Не можете дождаться начала работы? Руководство quickstart - это самый быстрый способ начать работу и создавать API с помощью REST framework.

Руководство

Руководство проведет вас через все этапы настройки DRF. Это займет не очень много времени, однако вы получите полное понимание того, как все компоненты работают друг с другом и данное руководство крайне рекомендовано к прочтению.

Так же есть пример работающего API законченного руководства для тестовых целей, доступен здесь.

Навигатор по API - исчерпывающее руководство по всему функционалу, предоставляемому DRF.

Статьи

Основные руководства для использующих DRF.

Разработка

Смотрите руководство для разработчиков для получения информации о том, как клонировать репозиторий, запустить набор тестов и внести изменения в REST Framework.

Поддержка

За поддержкой обращайтесь в REST framework discussion group, попробуйте использовать канал #restframework на irc.libera.chat, или задайте вопрос на Stack Overflow, обязательно указав тег 'django-rest-framework'.

Для получения приоритетной поддержки подпишитесь на профессиональный или премиум спонсорский план.

Безопасность

Вопросы безопасности решаются под руководством Django security team.

Пожалуйста, сообщайте о проблемах безопасности по электронной почте security@djangoproject.com.

После этого сопровождающие проекта будут работать с вами над решением любых вопросов, если потребуется, до обнародования информации.


Авторы перевода

Помощь в переводе

Спасибо всем за помощь в переводе!

Перевод производится с помощью утилиты md_docs-trans-app

Last updated