Requerimientos
- Node >= v8.0.0
- npm >= v5.0.0
- pm2 >= 2.6.1
Ir a la carpeta del proyecto para instalar las librerias
$ yarn install
Instalar pm2 en modo global
$ sudo npm install pm2 -g
Crear el archivo de configuracion ecosystem.local.yml para pm2 o se puede usar directamente ecosystem.example.yml
pm2 start ecosystem.example.yml --env development
pm2 start ecosystem.example.yml --env production
Luego abra un navegador y vaya a http://localhost:3232/explorer para ver el explorador de rutas.
Test
http://localhost:3232/v1/user/?id=234
Requerimientos
- Docker
- Docker-compose
Ir a la carpeta del proyecto y construir las imagenes de docker
$ docker-compose build
Configurar el archivo docker-compose con las variables que se usaran:
$ docker-compose up -d
Files:
.
├── app
│ └── controllers // Los controladores se separan en carpetas de version
│ │ └── v1
│ │ │ └── nombreDelControlador.js // Cada controlador se debe llamar igual a como se le dio de alta en el archivo endpoints.js, igual con cada funcion dentro.
│ │ └── v2
│ └── db
│ │ └── index.js // Contiene las funciones que se utilizan para crear la consulta a postgres
│ │ └── util.js // Archivo donde se crea la instancia del conector node-postgres usando config.js
│ └── middleware
│ │ └── conditionalParameters.js // Sirve para validar que dentro de un grupo de parametros que al menos uno se envie,
│ │ └── error.js // Personaliza la respuesta que se da ante un error
│ │ └── parameter.js // Encargado de la validacion de parametros GET o POST
│ └── routes
│ │ └── endpoints.js // IMPORTANTE, es aqui donde se configuran nuevas rutas con sus respectivos parametros
│ │ └── index.js // Se da de alta la instancia de router de koa con los parametros del archivo endpoints.js ya procesadas
│ └── views // index del explorador
├── public // Archivos css, js o imagenes
├── app.js // Inicia la aplicacion
├── config.js // Archivo con las variables de configuracion
├── docker-compose.yml // Archivo de configuracion para iniciar las imagenes de Docker
├── Dockerfile // Contruye la imagen Docker para este proyecto
├── ecosystem.example.yml // Archivo de ejemplo de configuracion para iniciar con pm2
└── package.json
endpoints.js
Para dar de alta un endpoint nuevo
// Ejemplo "/v1/nombreControlador/nombreFuncion"
{
v1: {
nombreControlador:{
nombreFuncion:{
verb:"POST, GET, PUT or DELETE",
verifyParams:{
nombreDelParametro: { type: 'int, string...', required: false },
... : {...}
}
}, ... : {...}
}, ... : {...}
},
v2: {...}
}
pm2 flush // This will delete all log entries from every managed process, also the PM2 process.
pm2 reloadLogs // If you’re using logrotate or any other application to support you handling the log entries, you can reload the old entries from your PM2 logs.
ls -l --block-size=M
/home/{USER}/.pm2/logs/*.log
cat /home/user/.pm2/logs/api-koa-out-*.log | grep -i -C 30 "404"