APIs da Web incríveis navegáveis na web.
A documentação completa do projeto está disponível em https://www.django-rest-framework.org/.
A estrutura REST é um projeto financiado de forma colaborativa . Se você usa a estrutura REST comercialmente, recomendamos fortemente que você invista em seu desenvolvimento contínuo, inscrevendo-se em um plano pago.
O objetivo inicial é fornecer uma posição única em tempo integral na estrutura REST. Cada inscrição tem um impacto significativo para tornar isso possível.
Muito obrigado a todos os nossos maravilhosos patrocinadores e, em particular, aos nossos patrocinadores premium, Sentry, Stream, Spacinov, Retool, bit.io, PostHog, CryptAPI, FEZTO, Svix e Zuplo.
A estrutura Django REST é um kit de ferramentas poderoso e flexível para construir APIs da Web.
Alguns motivos pelos quais você pode querer usar a estrutura REST:
Abaixo : Captura de tela da API navegável
É altamente recomendável e apenas oferecemos suporte oficial ao lançamento de patch mais recente de cada série Python e Django.
Instale usando pip
...
pip install djangorestframework
Adicione 'rest_framework'
à sua configuração INSTALLED_APPS
.
INSTALLED_APPS = [
...
'rest_framework' ,
]
Vamos dar uma olhada em um exemplo rápido de uso da estrutura REST para construir uma API simples baseada em modelo para acessar usuários e grupos.
Inicie um novo projeto como este ...
pip install django
pip install djangorestframework
django-admin startproject example .
./manage.py migrate
./manage.py createsuperuser
Agora edite o módulo example/urls.py
em seu projeto:
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' )),
]
Também gostaríamos de definir algumas configurações para nossa API.
Adicione o seguinte ao seu módulo 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' ,
]
}
É isso, terminamos!
./manage.py runserver
Agora você pode abrir a API em seu navegador em http://127.0.0.1:8000/
e visualizar sua nova API de 'usuários'. Se você usar o controle Login
no canto superior direito você também poderá adicionar, criar e excluir usuários do sistema.
Você também pode interagir com a API usando ferramentas de linha de comando, como curl
. Por exemplo, para listar o endpoint dos usuários:
$ 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,
}
]
Ou para criar um novo usuário:
$ 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,
}
A documentação completa do projeto está disponível em https://www.django-rest-framework.org/.
Para perguntas e suporte, use o grupo de discussão da estrutura REST ou #restframework
no IRC libera.chat.
Por favor, consulte a política de segurança.