Nodepop es una API de venta de artículos de segunda mano.
- Node >= v6.9.4
- MongoDB
- Git
$ git clone https://github.com/pbalasimon/practicanodejs
$ cd nodepop
$ npm install
Para el correcto funcionamiento de la aplicación, es necesario que este arrancado una instancia de MongoDB en el puerto 27017. Para ello, situarse en el directorio donde esta instalado mongodb y ejecutar
./startMongo.sh
Para que la base de datos tenga unos datos iniciales, se recomienda ejecutar el script
$ npm run installBD
para que la aplicación tenga un juego de datos antes de utilizarla.
Ejecutar el siguiente comando desde la raíz del proyecto
$ npm start
Para registrarse en la aplicación es necesario ejecutar un POST contra la url
http://localhost:3000/api/1.0/auth/signup
enviando un json de este tipo.
{
"name" : "Administrador",
"email" : "admin@nodepop.com",
"password": "admin"
}
El resultado será de este tipo
{
"succes": true,
"user": {
"__v": 0,
"name": "Administrador",
"email": "admin@nodepop.com",
"password": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
"_id": "5914d86e75bfd70d4986b937"
}
}
Para hacer login en la aplicación es necesario ejecutar un POST contra la url
localhost:3000/api/1.0/auth/login/
enviando un json de este tipo.
{
"email":"admin@nodepop.com",
"password" : "admin"
}
El resultado será de este tipo
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNTkwY2YzODNjMjMxYmE3N2VhOTk5OWU4IiwiZW1haWwiOiJhZG1pbkBub2RlcG9wLmNvbSIsImlhdCI6MTQ5NDY3MTc4MCwiZXhwIjoxNDk0NzU4MTgwfQ.RXJxHaYYMyGGGEeaErV6iDGmLc96sKg19FcRV6RiYSM"
}
El token tendrá una validez de un día. Sera necesario para poder realizar las siguientes peticiones.
Para obtener la lista de anuncios es necesario ejecutar un GET a la url
localhost:3000/api/1.0/ads/?tag=mobile&name=ip&sale=false&price=0-749&sort=price&limit=10
para que la llamada sea correcta, se deberá enviar el token en la cabecera con nombre 'x-access-token'. Este token se obtiene una vez se ha hecho login en la aplicación.
Este método, soporta varios filtros:
- Buscar por tags: tag=mobile
- Por precio: Rango de precio: price=50-100, price =50-, price =-100.
- Por venta: Si esta en venta o no sale=true o sale =false.
- Cuantos datos queremos mostrar: limit=2.
- Ordenación: sort=precio.
Para obtener la lista de tags existentes, ejecutar un GET a la url
localhost:3000/api/1.0/tags
para que la llamada sea correcta, se deberá enviar el token en la cabecera con nombre 'x-access-token'. Este token se obtiene una vez se ha hecho login en la aplicación.
Para indicar al API en que idioma se desea recibir los mensajes de error, es necesario enviar una cabecera con nombre 'Accept-Language' con valor 'es' o 'en'.