Deployd: Cómo tener una API REST en 15 minutos

El sábado pasado tuve la oportunidad de asistir a una hackaton organizada por Hacks/Hackers en Buenos Aires. En el equipo que estuve anotado, necesitabamos cargar datos y poder consumirlos desde Javascript para usarlo junto con Popcornjs (Otro día cuento un poco de esto).

La semana pasada, había leido sobre Deployd en GenbetaDev y aproveche para darle una oportunidad.

Los resultados, geniales. En minutos, tuvimos no solo una base de datos para lo que queriamos cargar, si no tambien una interfaz para hacerlo de forma visual, una API REST y una API en javascript que permitio que nos desentendamos por completo del tema.
La página web de Deployd es bastante completa en cuanto a documentación, ademas, la interfaz que posee es completamente intuitiva, una vez que lo tengamos andando, basta que hagamos un par de clicks en su interfaz para que veamos el poder que tiene. Sin embargo, debido a lo temprano de su desarrollo, hay ciertos errores que tenemos que resolver por nuestra cuenta, ya que de momento al menos, no es muy “habladora” que digamos y en caso de fallos simplemente no funcionara.
Por eso, van los pasos para tenerlo andando, a partir de su código fuente, probado en Archlinux, Ubuntu 13.04 y OS X Montain Lion.

  1. Tenemos que asegurarnos de tener instalado Mongodb (apt-get install mongo, pacman -S mongodb, brew install mondodb o lo que corresponda)
  2. Descargamos el código fuente de su página oficial y lo descomprimimos en cualquier lugar (vamos a suponer que lo hacemos en un directorio llamada deployd).
  3. Nos aseguramos que el archivo dpd, dentro de la carpeta bin, se pueda acceder globalmente. Para esto podemos agregar deployd/bin/ a nuestro PATH o bien, desde el directio deployd, “alias dpd=`pwd`/bin/dpd”
  4. Desde el directorio donde queremos crear nuestro proyecto, hacemos “dpd create miApp“. Esto nos creara una carpeta llamada “miApp
  5. Dentro de la carpeta “miAppejecutamos “dpd -d. Si todo anduvo bien, tenedremos la consola de Deployd y se abrira un browser con el dashboad (En caso de no hacerlo, solo debemos ir a localhost:2403/dashboard), desde donde podremos comenzar a usarlo.

Desde el dashboard de Deployd, podemos crear nuevas colecciones, especificando cada uno de sus campos. Cargar datos a estas colecciones, consultar los metodos REST que nos creo y especificar acciones ante los eventos CRUD haciendo uso de javascript.

Lo bueno de Deployd, es que todo es muy intuitivo. Si creamos una colección llamada “productos”, podemos hacer un GET a “localhost:2403/productos” y obtendremos una respuesta JSON con todos los productos que hayamos creado. Así tambien, “localhost:2403/productos/” Nos traera el producto que tengan esa . Tambien podemos hacer request POST, UPDATE o DELETE. Cada una hara la acción correspondiente, ejecutando primero lo que hayamos especificado en la pestaña Events del Dashboard (Si lo hicimos).

Si vamos ahora a la carpeta de nuestro proyecto, dentro de ‘public‘, vamos a tener un archivo index.html listo para usar que cargara la libreria js de dpd que pone a nuestra dispocisión, un objeto global llamado dpd, mediante el cual podemos acceder a nuestras colecciones. Por ejemplo, para acceder a los productos que creamos, lo hacemos mediante “dpd.get(function () { … })

En conclusión, Deployd nos permite tener, no solo una API REST, si no tambien una completa interfaz para manipular datos y accederlos ya sea mediante REST o su libreria Javascript. Ideal para hackatones cuando no contamos con una fuente de datos ya creada. Habría que ver como se comporta con un stress mayor.
De momento, recomiendo visitar su página oficial y colaborar con el proyecto a través de su repositiorio en github.