Vous êtes sur la page 1sur 3

Qu es y como crear un API REST

en Django?
mike.nieva Sept. 23, 2013

Las APIS REST estn basadas en el Representational State Transfer


que es un tipo de arquitectura de desarrollo web apoyada en HTTP.
Por esta razn las APIs utilizan los mtodos de HTTP (GET, POST,
PUT, DELETE). stas se usan para ejecutar operaciones con los
datos de tu aplicacin.
Lo ms importante de las APIs son los recursos!

Mtodos
GET: Consultar y leer recursos
POST: Crear recursos
PUT: Editar recursos
DELETE: Eliminar recursos

Ventajas
Para qu usar las APIs REST?
- Exponer datos a otros programas
- Facilitar el desarrollo del frontend
- Crear arquitecturas orientadas a servicios

Crear una API REST


Para crear un APIs REST, Django nos ofrece un framework con
caractersticas mgicas llamado Django Rest Framework
(http://django-rest-framework.org/) que debemos instalar en nuestra
aplicacin.
Para desarrollar APIs REST hay que tener claro que los mtodos
HTTP son fundamentales.

1. Para usar los datos de la aplicacin en una APIs Rest deben


serializarse; en la carpeta de la aplicacin se crea un archivo
serializer.py (standar).
2. Importamos a serializer.py, del framework de REST los serializers y
tambin importamos los modelos de los cuales se van a serializar los
datos

from rest_framework import serializers


from .models import _modelos_

3. Se crean las clases que heredan de


serializers.HyperlinkedModelSerializer y en ellas se van a definir de
los modelos, los cuales son los datos que se quieren serializar
Ej.

class EnlaceSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Enlace
fields = ('url',
'titulo','enlace','votos','usuario','timestamp',)

4. Crear las vistas para los serializadores en views.py, estas vistas


heredan de viewsset de rest_framework. Para esto se deben importar
los serializers y los viewset.
Ej.
from .serializers import EnlaceSerializer, UserSerializer
from rest_framework import viewsets
class EnlaceViewSet(viewsets.ModelViewSet):
queryset = Enlace.objects.all()
serializer_class = EnlaceSerializer

5. Crear las urls, para esto se usa la clase Router de rest_framework.

El uso de la clase Router es debido a que se usan ViewSets.


Utilizando la clase Router puedes manejar de forma automtica la
conexin entre los recursos en las vistas y las urls. Todo lo que hay
que hacer es registrar las vistas en un router, y dejar que haga el
resto.
Ej.
from rest_framework import routers
from app.views import EnlaceViewSet

router = routers.DefaultRouter()
router.register(r'links', EnlaceViewSet)

urlpatterns = patterns('',
url(r'^api/', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
)

6. Instalas el rest_framework a las aplicaciones de tu proyecto en


settings.py y listo vas a la url de tu API REST y tienes lista tu API para
usarla.
Nota: Chrome como buen aliado del desarrollo Web tiene una
extensin que te ayuda a administrar los recursos de tu API REST
Console.
(https://chrome.google.com/webstore/detail/restconsole/cokgbflfommojglbmbpenpphppikmonn)
En https://www.djangopackages.com/grids/g/rest/ encontrars
paquetes que te ayudan a construir APIs REST.

Vous aimerez peut-être aussi