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: