API creada con la finalidad de poder crear, editar y ver usuarios.
- user: Posee los campos email (requerido), color (solo puede ser "red", "green", "blue"), enabled (booleano), userInformation (campo que relaciona user con userInformation).
- userInformation: Posee los campos name (requerido), lastname (requerido), dni (numero único) y age
- users-get: Devuelve un listado de todos los usuarios registrados en la BD. Tiene la opción de poder filtrar usuarios según si están habilitados o no. Se logra a través de una query.
- users-post: Se encarga de crear el usuario en la base de datos. Tiene la característica de que valida los datos antes de poder subir los datos a la BD. De no cumplir la validación se debe retornar status 400.
- users-disable: La ruta debe validar que exista el usuario y que esté habilitado (enabled=true), de no ser así debe retornar status 400. Si las validaciones son correctas, se debe marcar al usuario indicado como deshabilitado (enabled=false).
- users-update:: Ruta que actualiza cualquier dato del modelo "user"
// POST http://localhost:8080/api/users/
{
"name": "John",
"lastName": "Doe",
"color": "blue",
"email": "[email protected]",
"dni": "123456789",
"age": 30
}
// GET http://localhost:8080/api/users/?enabled=true
// GET http://localhost:8080/api/users/?enabled=false
// POST http://localhost:8080/api/users/:id/disable
// PUT http://localhost:8080/users/:id
{
"email": "[email protected]",
"color": "green"
}
1. Se debería instalar mediante npm el controlador de bases de datos, por ejemplo MySQL. npm install mysql
2. Se debe modificar la configuración de conexión con la base de datos.
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'usuario',
password: 'contraseña',
database: 'nombre_basedatos'
});
3. Se debe crear las tablas user y user-information
CREATE TABLE user (
UserId INT PRIMARY KEY,
Email VARCHAR(50) required,
Color VARCHAR(50),
isEnabled BOOLEAN,
userinformation INT,
FOREIGN KEY (userinformation) REFERENCES userinformation(userinformationId)
);
CREATE TABLE userInformation (
UserInformationId INT PRIMARY KEY,
UserName VARCHAR(50) required,
LastName VARCHAR(50) required,
DNI INT unique required,
age INT
);
4. Se deben modificar las consultas a la base de datos. Ejemplo de users-get, donde se obtienen los usuarios habilitados.
connection.query('SELECT * FROM usuer WHERE isEnabled = TRUE')
You need a MongoDB instance running.
You must install npm packages from package.json.
Use start
script from package.json.
- Lenguaje backend utilizado: Node.js
- Framework web: Express
- Base de datos: MongoDB
- Editor de código fuente: Visual Studio Code