La información de Buenos Aires Data transformada en Web API
Se compone de 2 procesos server.js
y admin.js
, siendo el servidor API y el Administrador de Trabajos (o Jobs Scheduler)
Ambos procesos acceden a una base de datos MongoDB, la cual contiene la información de los recursos, como de los Trabajos (o Jobs)
NodeJS v0.8.x es requerido
Instalar GruntJS
Esto agregará el comando grunt
a tu path de sistema.
Si ya tenes instalado Grunt global (versión 0.3.x) tenes que removerlo antes de instalar el cliente (esto no afecta a otros proyectos que funcionen con tu versión actual de Grunt)
npm uninstall -g grunt
npm install -g grunt-cli
Mas Info en GruntJS: Getting Started
npm install
grunt
Esto compilara todos los archivos JS y LESS que se encuentran en la carpeta
./client
y los ubicará en./dist
De está manera no vas a tener que correr grunt
cada vez que cambias un archivo
grunt watch
Cada vez que guardes un archivo dentro de la carpera
./client
compilará nuevamente.
En el root del proyecto se encuentra el archivo secrets.json
:
{
"mongodb": {
"connectionString": "apicaba" // conexión a la base de datos MongoDB
},
"APIhost": "http://localhost:3000", //root de la API
"session": "no le digas a nadie", // secreto de session para ExpressJS
"request_retries": 10 //cantidad de intentos del Job en caso de respuesta fallida desde BA Data
}
Para correr los proceso, luego de compilar con grunt:
node server.js
Por defecto estará ubicado en http://localhost:3000
node admin.js
Por defecto estará ubicado en http://localhost:3050
Para configurar el usuario y password del Adminsitrador, insertar un registro en la base de datos
mongo
use apicaba
db.admins.insert({"username" : "usuario", "password" : "pa$$w0rd" })
Los tests de la API se encuentran en el directorio ./test
y para correrlos configurar el archivo ./secrets_test.json
ejecutar:
make test
Los tests están hechos con Mocha, por lo que si estas en Windows, podes correrlos con viendo el Makefile.
Para generar el CodeCoverage:
make coverage
Y abrir el archivo ./coverage.html
(The MIT License)
Copyright (c) 2013 Pablo Novas <[email protected]>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.