Потрясающие веб-API для просмотра в Интернете.
Полная документация проекта доступна по адресу https://www.django-rest-framework.org/.
REST Framework — это проект, финансируемый совместно . Если вы используете REST framework в коммерческих целях, мы настоятельно рекомендуем вам инвестировать в его дальнейшее развитие, подписавшись на платный план.
Первоначальная цель — предоставить единую постоянную должность в сфере REST. Каждая отдельная регистрация оказывает значительное влияние на то, чтобы сделать это возможным.
Большое спасибо всем нашим замечательным спонсорам, и в частности нашим премиальным спонсорам: Sentry, Stream, Spacinov, Retool, bit.io, PostHog, CryptAPI, FEZTO, Svix и Zuplo.
Платформа Django REST — это мощный и гибкий набор инструментов для создания веб-API.
Некоторые причины, по которым вы можете захотеть использовать среду REST:
Ниже : снимок экрана из API, доступного для просмотра.
Мы настоятельно рекомендуем и официально поддерживаем только последние версии патчей для каждой серии Python и Django.
Установить с помощью pip
...
pip install djangorestframework
Добавьте 'rest_framework'
в настройку INSTALLED_APPS
.
INSTALLED_APPS = [
...
'rest_framework' ,
]
Давайте рассмотрим краткий пример использования платформы REST для создания простого API на основе модели для доступа к пользователям и группам.
Запускаем новый проект вот так...
pip install django
pip install djangorestframework
django-admin startproject example .
./manage.py migrate
./manage.py createsuperuser
Теперь отредактируйте модуль example/urls.py
в своем проекте:
from django . contrib . auth . models import User
from django . urls import include , path
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 a 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.
Добавьте следующее в свой модуль settings.py
:
INSTALLED_APPS = [
... # Make sure to include the default installed apps here.
'rest_framework' ,
]
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' ,
]
}
Вот и все, мы закончили!
./manage.py runserver
Теперь вы можете открыть API в своем браузере по адресу http://127.0.0.1:8000/
и просмотреть свой новый «пользовательский» API. Если вы используете элемент управления Login
в правом верхнем углу, вы также сможете добавлять, создавать и удалять пользователей из системы.
Вы также можете взаимодействовать с API с помощью инструментов командной строки, таких как curl
. Например, чтобы вывести список конечных точек пользователей:
$ curl -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
[
{
"url": "http://127.0.0.1:8000/users/1/",
"username": "admin",
"email": "[email protected]",
"is_staff": true,
}
]
Или создать нового пользователя:
$ curl -X POST -d username=new -d [email protected] -d is_staff=false -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
{
"url": "http://127.0.0.1:8000/users/2/",
"username": "new",
"email": "[email protected]",
"is_staff": false,
}
Полная документация проекта доступна по адресу https://www.django-rest-framework.org/.
Если у вас есть вопросы и поддержка, используйте группу обсуждения REST framework или #restframework
на libera.chat IRC.
Пожалуйста, ознакомьтесь с политикой безопасности.