Skip to content
Snippets Groups Projects
Commit 7e3c3bb8 authored by Mariana Molina Reyes's avatar Mariana Molina Reyes
Browse files

Agregar README.md

parent 87c0caf0
No related branches found
No related tags found
No related merge requests found
# Segundo laboratorio Base de Datos NoSql 2019
## Servidor
Decidimos utilizar Node.js como servidor para nuestra aplicación. La razón principal es por la popularidad de Javascript y la facilidad de manejar documentos JSON y peticiones HTTP en este entorno. Agregamos el framework Express.js que nos ayudaba a simplificar algunas tareas. Es también muy popular y fácil de instalar.
El programa es ejecutado de forma local en el puerto 3000.
## Base de datos
- Usuarios: Los usuarios son guardados en la base de datos MongoDB. Escogimos MongoDB por su popularidad. El email, aunque es único, decidimos guardarlo en un campo separado, y no como id, ya que si el sistema creciera, al usuario podría interesarle cambiar su email. La visualización de los usuarios la realizamos en MongoDB Compass.
- Comentarios: Los comentarios son guardados en la base de datos DynamoDB. Elegimos DynamoDB por su servicio en la nube. Los comentarios son guardados con un id único que creamos con una librería Javascript para generar uuid. Los comentarios son identificados por su id y el usuario autor del comentario. Lo más coherente en una base de datos SQL para buscar los comentarios por usuario es agregar un índice a la tabla Comentarios para identificar usuarios. Luego se busca con el índice el usuario y se obtienen sus comentarios. En Dynamo esto no es necesario, ya que su clave puede componerse de dos elementos: Clave de partición y Clave de ordenación. Amazon DynamoDB usa el valor de clave de partición como dato de entrada a una función hash interna. El resultado de la función resuelve la partición (almacenamiento físico interno) donde se guardará el elemento. Por lo que utilizar la clave de partición como el usuario a buscar, y la clave de ordenación para identificar el comentario parecía la manera correcta de hacerlo.
## Códigos de estado:
- Cuando se quiere agregar un usuario que ya existe, retorna 409.
- Cuando no se encuentra el usuario o el comentario, retorna 404.
- Cuando ocurre otro error, retorna 500.
- Si se pueden obtener, modificar, o crear los datos correctamente, retorna 200.
## Pruebas
Las pruebas las realizamos con Postman. Además de definir un conjunto de request, podemos escribir pruebas y determinar qué salidas debería tener un request, ordenarlos, y mucho más.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment