/kc06-nodejs

KeepCoding II Web Development Master Bootcamp - Práctica Node.js y MongoDB

Primary LanguageJavaScript

Documentación Nodepop


Nodepop es una API de venta de artículos de segunda mano.

Requisitos

  • Node >= v6.9.4
  • MongoDB
  • Git

Instalación

Descarga del código fuente

$ git clone https://github.com/pbalasimon/practicanodejs

Instalación de dependencias

$ cd nodepop
$ npm install

Arrancar la base de datos

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

Inicializar la base de datos

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.

Arranque de la aplicación

Ejecutar el siguiente comando desde la raíz del proyecto

$ npm start

Registro en la aplicación

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"
  }
}

Login de la aplicación

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.

Lista de anuncios

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.

Lista de tags

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.

Internacionalizació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'.