GithubHelp home page GithubHelp logo

kcpractice_nodejs's Introduction

Second-hand market API

Práctica Node.js para Keepcoding Web II Bootcamp.

Endpoints de la API :

  • register
  • auth
  • tags
  • advertisements

Ejecución por defecto

Para iniciar el servidor, ejecutar: npm start.

Ejecución usando cluster

Nota: No usa cluster si la variable ${NODE_ENV} es distinta de 'production'

Con el entorno en modo production, usar el paquete compilado (Generado en ./dist).

Es necesario instalar el package pm2 y ejecutar pm2 start index.js -i 0.

Esto iniciará el servidor en modo cluster, usando las CPU's disponibles.

Mongo Shell script

La versión MongoDB debe ser >= 3.4.2

Ir al directorio scripts/database/mongodb/ y ejecutar el comando mongo install_bd.js.

Mensajes de Error

Los mensajes de error están definidos en el documento assets/docs/errorMessages.json, cuya estructura permite seleccionar la traducción de los mismos a un lenguaje determinado.

Se puede definir el lenguaje de mensajes de error a nivel base de datos en user o en la query. Si ningunp de estos está definido, el sistema usa en por defecto.

Ejemplos de Queries usando CURL

Query:

  • lang: error message language priority
  • token: for adverts request

register

Registrar un nuevo usuario
curl -XPOST http://localhost:3000/apiv1/register?lang=es -H 'Content-Type: application/json' -d '{ "name": "dimpiax", "email": "[email protected]", "passwd": "root", "lang": "UA" }'

auth

Recuperar el token de autorización de un usuario

Returns AUTH_TOKEN

curl -XPOST http://localhost:3000/apiv1/auth -H 'Content-Type: application/json' -d '{ "email": "[email protected]", "passwd": "root" }'

tags

Recuperar el listado de tags existentes
curl -XGET http://localhost:3000/apiv1/adverts/tags?lang=es\&token=AUTH_TOKEN

advertisements

Recuperar anuncios

Esta query permite varios parámetros. Se incluyen en la respuesta los documentos que satisfagan las siguientes condiciones para cada propiedad:

  • name (string): comienzan por la cadena facilitada

  • price (string | double): se encuentran en el rango definido para la propiedad price

  • toSell (boolean): tipo de anuncio

  • tag (string): el valor está incluido en la variable tipo array tags

  • limit (number): limita el número de documentos en la respuesta

  • start (number): muestra la página de los registros recuperados relativa al límite especificado en limit. Por ejemplo: si start es 5 y limit es 10, se mostrarán los documentos a partir del índice 50

Los documentos pueden ser ordenados en orden ascendente especificando una propiedad:

  • sort (string): propiedad a usar para la ordenación.

Ejemplos:

  • paging, sorting, price interval, tag
curl -XGET http://localhost:3000/apiv1/adverts?token=AUTH_TOKEN\&start=0\&limit=2\&sort=toSell\&price=10-230.15\&tag=motor
  • advertisement type
curl -XGET http://localhost:3000/apiv1/adverts?token=AUTH_TOKEN\&toSell=false

Entorno de desarrollo

Herramientas usadas: Babel, Flow, ESLint.

kcpractice_nodejs's People

Contributors

erfederuiz avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.