Primeros pasos con django-rest-framework
En esta página
Instalar o Configurar
Requisitos
- Pitón (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)
- Django (1.7+, 1.8, 1.9, 1.10, 1.11)
Instalar
Puede usar pip
para instalar o clonar el proyecto desde github.
-
Usando
pip
:pip install djangorestframework
-
Usando
git clone
:git clone [email protected]:tomchristie/django-rest-framework.git
Después de la instalación, debe agregar rest_framework
a la configuración de INSTALLED_APPS
.
INSTALLED_APPS = (
...
'rest_framework',
)
Si tiene la intención de utilizar la API navegable, probablemente también desea agregar las vistas de inicio y cierre de sesión del marco REST. Añade el siguiente a su archivo raíz urls.py.
urlpatterns = [
...
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
Ejemplo
Echemos un vistazo a un ejemplo rápido del uso del marco REST para construir una API simple respaldada por un modelo.
Crearemos una API de lectura y escritura para acceder a la información de los usuarios de nuestro proyecto.
Cualquier configuración global para una API de marco REST se mantiene en un único diccionario de configuración denominado REST_FRAMEWORK
. Comience agregando lo siguiente a su módulo 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'
]
}
Estamos listos para crear nuestra API ahora. Aquí está el módulo raíz urls.py
de nuestro proyecto:
from django.conf.urls import url, 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 = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
Ahora puede abrir la API en su navegador en http://127.0.0.1:8000/
y ver su nueva API de ‘usuarios’. Si usa el control de inicio de sesión en la esquina superior derecha, también podrá agregar, crear y eliminar usuarios del sistema.