You are on page 1of 4

Django API REST

Introduccin

Una forma muy comn de obtener informacin de diferentes fuentes es


mediante una API REST, que proporciona distintos API endpoints los
cuales son accesibles con tal de conseguir unos datos determinados. Django
REST Framework es un framework que nos permite el fcil desarrollo de
una API REST en Python. Actualmente esta tecnologa se usa en diversos
proyectos, como por ejemplo la API del Rac o el proyecto UOC ndex.

Instalacin

Una buena prctica es crear un entorno virtual con todo lo necesario para
poder ejecutar la API REST creada con Django:

Una vez instalado el entorno, an nos hace falta instalar las libreras
necesarias de Python para poder usar Django:

2 pip install django

3 pip install djangorestframework

4 django-admin.py startproject tutorial .

5 cd tutorial

6 django-admin.py startapp quickstart

Ahora ya lo tenemos todo a punto para empezar nuestro proyecto con Django.

Estructura del proyecto

Analizando lo que se ha creado dentro de la carpeta tutorial podemos ver


como es la estructura de un proyecto con Django:

env: entorno virtual con las libreras instaladas y los ficheros necesarios
para la correcta ejecucin del proyecto.
tutorial: carpeta donde podemos encontrar toda la configuracin del
proyecto. Destacar settings.py y urls.py, ficheros que respectivamente
controlan la configuracin del proyecto (aplicaciones instaladas,
mdulos que se pueden usar, tipos de bases de datos soportadas) y las
urls disponibles.
quickstart: carpeta donde podemos encontrar la configuracin de la
aplicacin quickstart del proyecto.
manage.py: ejecutable en Python que permite la puesta en marcha de la
API.

Estructura de la aplicacin

Analizando lo que se ha creado dentro de la carpeta quickstart podemos ver


como es la estructura de una aplicacin Django:

models.py: fichero con la informacin sobre los modelos de datos que


usa nuestra aplicacin.
views.py: archivo que contiene todas las vistas empleadas por la
aplicacin.
tests.py: fichero para desarrollar posibles tests para la aplicacin.
migrations: directorio encargado de detectar cambios en las bases de
datos que usa la aplicacin.

Es muy recomendable crear ficheros adicionales, especialmente estos dos:

urls.py: fichero con las posibles urls o endpoints de la API.


queries.py: archivo con las distintas llamadas a las bases de datos.

Tutorial
Una vez realizada la instalacin tal como se describe en el punto Instalacin,
crearemos un nuevo endpoint para describir con ms detalle cmo funciona
Django:

1. Abrimos el archivo tutorial/tutorial/settings.py y aadimos la lista


INSTALLED_APPS rest_framework y quickstart.
2. Abrimos el archivo tutorial/tutorial/urls.py y aadimos a la lista
urlpatterns la siguiente url: url(r^quickstart/,
include(quickstart.urls)). Con este paso ya hemos hecho la
configuracin bsica de nuestra aplicacin quickstart.
3. Ahora aadiremos nuestras primeras vistas a
tutorial/quickstart/views.py:
def index(request):
1
return HttpResponse("Hello, world. You're at the quickstartapp
2 index.")

3 class Example(APIView):

4 """

Returns data from the football player Antoine Griezmann


5
"""
6
def get(self, request):
7
data = {'Player': 'Antoine griezmann','Team': 'Atltico de
8 Madrid', 'Age': 25}

9 return HttpResponse(json.dumps(data, indent=4,


sort_keys=True), content_type="application/json")

4. Vamos a /tutorial/quickstart y creamos el archivo urls.py:


1 from django.conf.urls import url

2 from . import views

3 urlpatterns = [

4 url(r'^index/', views.index, ),

5 url(r'^griezmann/', views.Example.as_view(), name="'example'),


6 ]

5. Vamos a /tutorial y ejecutamos python manage.py runserver (por


defecto se ejecuta en el puerto 8000) y comprobamos el funcionamiento
de nuestro nuevo endpoint. Tendramos que obtener un resultado
llamando al endpoint http://localhost:8000/quickstart/griezmann/
parecido a este:
{
"Age": 25,
"Player": "Antoine Griezmann",
"Team": "Atletico de Madrid"
}

Esto es solo un pequeo ejemplo donde los datos son generados cada vez que
se accede a la vista correspondiente. Creando un fichero queries.py,
podramos definir una manera ms compleja de conseguir los datos,
permitiendo que cada vez que se llamase a una determinada vista se fuesen a
buscar los datos correspondientes a una base de datos determinada.

Para acabar

Hemos visto cmo empezar a desarrollar una API REST con Django, que nos
permite un desarrollo muy simple pero a la vez muy potente y fcilmente
escalable. Podis encontrar la documentacin oficial del framework en:
http://www.django-rest-framework.org/