API rest Full para Python con Eve (parte 1).

Posted on mar 07 abril 2015 in Tutorial Python • 2 min read

Eve es un framework API rest diseñado "para humanos", en enlace para ver el proyecto es el siguiente.

Soporta mongodb y backends de SQL. Sus características las pueden revisar acá.

Este artículo se basa en el quickstart de la aplicación.

Para instalar a Eve se usa el comando pip o easy_install:

#pip install Eve

ó

#easy_install Eve

Luego se creará un archivo con nombre run.py. Su código es el siguiente:

#Se importa eve de Eve
from eve import Eve

#Se crea la instancia de Eve
app = Eve()

#Se ejecuta run.
if __name__ == '__main__':
        app.run()

Ahora se crea un archivo settings.py con el siguiente contenido:

DOMAIN = {'persona': {}}

Los dos archivos deben estar guardados en el mismo directorio.

Ahora se ejecuta run.py:

ernesto@grievous:~/bin/apirest$ python run.py
 * Running on http://127.0.0.1:5000/

Ahora se consulta el API con curl:

ernesto@grievous:~$ curl -i http://127.0.0.1:5000
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 64
Server: Eve/0.5.3 Werkzeug/0.9.6 Python/2.7.8
Date: Wed, 08 Apr 2015 00:09:14 GMT

{"_links": {"child": [{"href": "persona", "title": "persona"}]}}

Ahora se consulta a persona:

ernesto@grievous:~$ curl http://127.0.0.1:5000/persona
{"_items": [], "_links": {"self": {"href": "persona", "title": "persona"}, "parent": {"href": "/", "title": "home"}}, "_meta": {"max_results": 25, "total": 0, "page": 1}}

Lo que muestra la ejecución de run.py es lo siguiente:

ernesto@grievous:~/bin/apirest$ python run.py
 * Running on http://127.0.0.1:5000/
127.0.0.1 - - [07/Apr/2015 19:39:14] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [07/Apr/2015 19:41:35] "GET /persona HTTP/1.1" 200 -

Se muestran las 2 peticiones en el log.

En próximo artículo se explicará el uso de Eve con mongodb.

¡Haz tu donativo! Si te gustó el artículo puedes realizar un donativo con Bitcoin (BTC) usando la billetera digital de tu preferencia a la siguiente dirección: 17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV

O Escaneando el código QR desde la billetera:

17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV