Skip to content

El objetivo principal de la API es otorgar la información necesaria de las consultas sobre pedidos, productos y usuarios, tenirndo en consideración la autenticación con tokens de autenticación y usando middleware que proporciona el manejo de la autenticación de los usuarios.

Notifications You must be signed in to change notification settings

arelyweb/DEV009-burger-queen-api

 
 

Repository files navigation

Burger Queen - API con Node.js

Índice

1. Preámbulo

Un pequeño restaurante de hamburguesas, que está creciendo, necesita un sistema a través del cual puedan tomar pedidos usando una tablet, y enviarlos a la cocina para que se preparen ordenada y eficientemente.

Este proyecto tiene dos áreas: interfaz web (cliente) y API (servidor). Nuestra clienta nos ha solicitado desarrollar la API que se puede integrar con la interfaz, que otro equipo de desarrolladoras está trabajando simultáneamente.

2. Resumen del proyecto

El objetivo principal de la API es otorgar la información necesaria de las consultas sobre pedidos, productos y usuarios, tenirndo en consideración la autenticación con tokens de autenticación y usando middleware que proporciona el manejo de la autenticación de los usuarios.

Se proporciona un link a la documentación que especifica el comportamiento esperado de la API que expondremos por HTTP.

La API se creo usando NodeJS, Express, MongoDB, MVC, JWT.

El diagrama del esquema del proyecto.

# Corre pruebas e2e sobre instancia local. Esto levanta la aplicación con npm
# start y corre los tests contra la URL de esta instancia (por defecto
# http://127.0.0.1:8080).
npm run test:e2e

# Corre pruebas e2e sobre URL remota
REMOTE_URL=<TODO: poner URL> npm run test:e2e

Las pruebas end-to-end ya están completas en el boilerplate, así que puedes usarlas como guía de implementación y checklist de completitud.

5. API

Según lo establecido por la documentación entregada, la API debe exponer los siguientes endpoints:

5.1. /

  • GET /

5.2. /auth

  • POST /auth

5.3 /users

  • GET /users
  • GET /users/:uid
  • POST /users
  • PUT /users/:uid
  • DELETE /users/:uid

5.4 /products

  • GET /products
  • GET /products/:productid
  • POST /products
  • PUT /products/:productid
  • DELETE /products/:productid

5.5 /orders

  • GET /orders
  • GET /orders/:orderId
  • POST /orders
  • PUT /orders/:orderId
  • DELETE /orders/:orderId

5.6 Variables de entorno

La aplicación usa las siguientes variables de entorno:

  • PORT: Si no se ha especificado un puerto como argumento de línea de comando, podemos usar la variable de entorno PORT para especificar el puerto. Valor por defecto 8080.
  • DB_URL: El string de conexión de MongoDB. Cuando ejecutemos la aplicación en nuestra computadora (en entorno de desarrollo), podemos usar el una base de datos local, pero en producción deberemos utilizar las instancias configuradas con docker-compose (mas sobre esto en la siguiente sección de Deployment)
  • JWT_SECRET: Nuestra aplicación implementa autenticación usando JWT (JSON Web Tokens). Para poder firmar (cifrar) y verificar (descifrar) los tokens, nuestra aplicación necesita un secreto. En local puedes usar el valor por defecto (xxxxxxxx), pero es muy importante que uses un secreto de verdad en producción.
  • ADMIN_EMAIL: Opcionalmente podemos especificar un email y password para el usuario admin (root). Si estos detalles están presentes la aplicación se asegurará que exista el usuario y que tenga permisos de administrador. Valor por defecto admin@localhost.
  • ADMIN_PASSWORD: Si hemos especificado un ADMIN_EMAIL, debemos pasar también una contraseña para el usuario admin. Valor por defecto: changeme.

About

El objetivo principal de la API es otorgar la información necesaria de las consultas sobre pedidos, productos y usuarios, tenirndo en consideración la autenticación con tokens de autenticación y usando middleware que proporciona el manejo de la autenticación de los usuarios.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%