Giter VIP home page Giter VIP logo

grava-test-mongodb-api's Introduction

API REST de usuarios para MongoDB

Descripción

API creada con la finalidad de poder crear, editar y ver usuarios.

Modelos:

  • 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

Principales rutas creadas:

  • 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"

Ejemplo de datos para insertar, modificar o actualizar la BD

users-post

// POST http://localhost:8080/api/users/
{
    "name": "John",
    "lastName": "Doe",
    "color": "blue",
    "email": "[email protected]",
    "dni": "123456789",
    "age": 30
}

users-get

// GET http://localhost:8080/api/users/?enabled=true

// GET http://localhost:8080/api/users/?enabled=false

user-disable

// POST http://localhost:8080/api/users/:id/disable

user-update

// PUT http://localhost:8080/users/:id
{
    "email": "[email protected]",
    "color": "green"
}

¿Qué tal si usaramos una base de datos relacional?

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')

Dependencies

You need a MongoDB instance running.

You must install npm packages from package.json.

Run

Use start script from package.json.

Herramientas y tecnologías utilizadas

  • Lenguaje backend utilizado: Node.js
  • Framework web: Express
  • Base de datos: MongoDB
  • Editor de código fuente: Visual Studio Code

grava-test-mongodb-api's People

Contributors

patricio97m 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.