Impresionantes API web navegables.
La documentación completa del proyecto está disponible en https://www.django-rest-framework.org/.
El marco REST es un proyecto financiado en colaboración . Si utiliza el marco REST comercialmente, le recomendamos encarecidamente que invierta en su desarrollo continuo registrándose en un plan pago.
El objetivo inicial es proporcionar un puesto único a tiempo completo en el marco REST. Cada registro tiene un impacto significativo para hacerlo posible.
Muchas gracias a todos nuestros maravillosos patrocinadores y, en particular, a nuestros patrocinadores premium, Sentry, Stream, Spacinov, Retool, bit.io, PostHog, CryptAPI, FEZTO, Svix y Zuplo.
El marco REST de Django es un conjunto de herramientas potente y flexible para crear API web.
Algunas razones por las que quizás quieras utilizar el marco REST:
Abajo : captura de pantalla de la API navegable
Recomendamos encarecidamente y solo admitimos oficialmente la última versión del parche de cada serie de Python y Django.
Instalar usando pip
...
pip install djangorestframework
Agregue 'rest_framework'
a su configuración INSTALLED_APPS
.
INSTALLED_APPS = [
...
'rest_framework' ,
]
Echemos un vistazo a un ejemplo rápido del uso del marco REST para crear una API simple respaldada por un modelo para acceder a usuarios y grupos.
Poner en marcha un nuevo proyecto así...
pip install django
pip install djangorestframework
django-admin startproject example .
./manage.py migrate
./manage.py createsuperuser
Ahora edite el módulo example/urls.py
en su proyecto:
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' )),
]
También nos gustaría configurar un par de ajustes para nuestra API.
Agregue lo siguiente a su 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' ,
]
}
¡Eso es todo, hemos terminado!
./manage.py runserver
Ahora puede abrir la API en su navegador en http://127.0.0.1:8000/
y ver su nueva API de 'usuarios'. Si utiliza el control Login
en la esquina superior derecha, también podrá agregar, crear y eliminar usuarios del sistema.
También puedes interactuar con la API utilizando herramientas de línea de comandos como curl
. Por ejemplo, para enumerar el punto final de los usuarios:
$ 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,
}
]
O para crear un nuevo usuario:
$ 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,
}
La documentación completa del proyecto está disponible en https://www.django-rest-framework.org/.
Si tiene preguntas y necesita ayuda, utilice el grupo de discusión del marco REST o #restframework
en libera.chat IRC.
Por favor consulte la política de seguridad.