Django REST framework - NurOrNuLL/ESDP-AP-5-6-TEAM-2 GitHub Wiki
Django REST framework
Описание
Django REST framework — это мощный и гибкий инструментарий для создания веб-API.
Некоторые причины, по которым вы можете захотеть использовать REST framework:
Доступный для просмотра в Интернете API — это огромный выигрыш в удобстве использования для ваших разработчиков. Политики аутентификации, включая пакеты для OAuth1a и OAuth2 . Сериализация , которая поддерживает как ORM , так и не-ORM источники данных. Полностью настраиваемый — просто используйте обычные представления на основе функций, если вам не нужны более мощные функции . Обширная документация и отличная поддержка сообщества . Используется и пользуется доверием всемирно признанных компаний, включая Mozilla , Red Hat , Heroku и Eventbrite .
Требования
Фреймворк REST требует следующего:
Python (3.6, 3.7, 3.8, 3.9, 3.10) Джанго (2.2, 3.0, 3.1, 3.2, 4.0) Мы настоятельно рекомендуем и официально поддерживаем только последние выпуски исправлений для каждой серии Python и Django.
Следующие пакеты являются необязательными:
PyYAML , uritemplate (5.1+, 3.0.0+) — поддержка генерации схемы. Markdown (3.0.0+) — поддержка Markdown для доступного для просмотра 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',
]
Если вы собираетесь использовать доступный для просмотра API, вы, вероятно, также захотите добавить представления входа в систему и выхода из системы REST. Добавьте следующее в корневой urls.pyфайл.
urlpatterns = [
...
path('api-auth/', include('rest_framework.urls'))
]
Обратите внимание, что URL-адрес может быть любым.
Пример
Давайте рассмотрим краткий пример использования среды REST для создания простого API на основе модели.
Мы создадим API для чтения и записи для доступа к информации о пользователях нашего проекта.
Любые глобальные настройки API-интерфейса REST framework хранятся в одном словаре конфигурации с именем 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. Если вы используете элемент управления входом в систему в правом верхнем углу, вы также сможете добавлять, создавать и удалять пользователей из системы.