Giter Club home page Giter Club logo

nodepop's Introduction

PRÁCTICA: Desarrollo BackEnd con Node.js

Objetivo

Desarrollar una API que se ejecutará en el servidor de un servicio de venta de artículos de segunda mano llamado Nodepop.

Este servicio mantiene anuncios de compra o venta de productos guardados en la base de datos. También permite buscar anuncios usando diversos filtros.

Inicio


  • Crea una copia local del repositorio ejecutando con GIT:

    • Para HTTPS ejecuta: git clone https://github.com/fruizpace/nodepop.git
    • Para SSH ejecuta: git clone [email protected]:fruizpace/nodepop.git
  • Desde el terminal de Visual Studio instala las dependencias con npm install

  • Recomendación Si es la primera vez que ejecutas el proyecto, hay que generar la base de datos por defecto con el script npm run initDB

  • Por defecto la aplicación usará el puerto PORT 3000 y generará una base de datos llamada nodepop con datos de 3 anuncios: bicicleta, laptop y iPhone.

  • Ejecuta el script npm run dev

SCRIPTS disponibles


npm start --> Se ejecutará el archivo bin/www. Abrimos el navegador e introducimos localhost:3000 o 127.0.0.1:3000 y nos aparecerá la página principal de Nodepop.

npm run dev --> Similar a npm start usado para desarrollo usando nodemon

npm run initDB --> Inicializará la base de datos introduciendo 3 anuncios por defecto en nuestra base de datos.

Rutas


  • localhost:PORT:

Página inicial del proyecto que muestra el listado de artículos generados por defecto con el script npm run installDB o los que haya en la base de datos.

  • localhost:PORT/api/anuncios:

Listado de artículos en formato JSON

  • localhost:PORT/images/<nombreimagen>

Muestra la imagen de productos guardada en la carpeta public /images. Hay que indicar el nombre. Por ejemplo: localhost:PORT/images/bici.jpg

Uso de filtros (GET)


Nota: Los filtros para hacer búsquedas de productos sólo son funcionales en la ruta de api/anuncios y no en la página principal.

La estructura de los filtros es:

  • localhost:PORT/api/anuncios/?parametro1=valor&parametro2=valor

    Parametros de filtrado permitidos:

    • nombre (string): se puede indicar todo el nombre del producto o las primeras letras. Ejemplo: nombre=ip dará productos cuyo nombre empiece con "ip" como iPhone.

    • venta (boolean): sólo reconoce los valores true o false.

    • precio (number): Acepta valores superiores a cero. A continuación las formas de indicar el precio en el filtro.

    precio=50 ==> Busca el precio exacto.
    
    precio=50- ==> Busca artículos con un precio mayor o igual que 50.
    
    precio=50-200 ==> Busca articulos con un precio entre 50 hasta 200.
    
    precio=-200 ==>  Busca artículos con un precio menor o igual que 200.
    
    • tags (string): Sólo hay 4 tags (etiquetas) aceptadas: work, lifestyle, mobile y motor. Los tag se deben separar con un punto y coma (;) y pueden haber espacios en blanco entre los tags. Si el tag no está en la lista, dará error.

      • Ejemplo: localhost:3000/api/anuncios?tags=work; motor este filtro dará como resultado todos los anuncios que contengan la etiqueta work o motor.
    • start (number): Número de anuncios a 'saltarse' de la lista.

      • http://localhost:PORT/?precio=100-2500&start=2
    • limit (number): Cantidad máxima de anuncios a mostrar.

      • http://localhost:PORT/?precio=100-2500&limit=2
    • sort (string): Ordenar por nombre o precio. Si escribimos sort=nombre se ordenará por orden alfabético. sort=precio, de menor a mayor. Para ordenarlo al revés sólo hay que añadir un menos a la variable: sort=-nombre o sort=-precio

Crear nuevos anuncios (POST)

  • Si usas POSTMAN

    • Crea una cuenta en POSTMAN

    • La url donde hacer la petición POST será http://localhost:3000/api/anuncios

    • Selecciona la pestaña BODY y marca el tipo de codificación x-www-form-urlencoded

    • En KEY escribe el nombre del párametro y en VALUE indica el valor que le quieras asignar.

    • Puedes añadir hasta 5 parámetros: nombre, venta, precio, foto y tags.

      Recuerda: El parámetro venta es booleano y sólo acepta en minúsculas true o false.

      Si quieres añadir una foto al nuevo artículo, en foto indica el nombre de la imagen con su extensión. Por ejemplo: chaqueta.png o chaqueta.jpg. Luego añade el archivo de imagen en la carpeta public/images.

      Para añadir más de un tag hemos de pasarle tantas KEY y VALUE como tags queramos. Ejemplo abajo:

    key : value

    • nombre : Chaqueta motera
    • venta: true
    • precio: 35.00
    • tags: lifestyle
    • tags: motor
  • Si todo está correcto, se mostrará el anuncio nuevo en formato JSON.

nodepop's People

Contributors

fruizpace avatar

Watchers

 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.