lunes, 17 de agosto de 2020

Vamos a crear una API (Utilizando CRUD)

¿Qué es una API?

Una API significa Interfaz de Programación de Aplicaciones esta suele ser utilizada para el desarrollo de las aplicaciones .

Vamos a crear una API lo cual vamos a utilizar una serie de operaciones utilizando el CRUD lo que significa estas siglas en ingles es Create, Read, Update y Delete estas operaciones nos sirven para leer, escribir, modificar y eliminar información caso de necesitarla  en esta pagina, para entender de mejor manera vamos a utilizar un proyecto de ejemplo con los siguientes pasos:

1. Primero vamos a clonar el proyecto 

  • git clone https://github.com/MicrosoftDocs/node-essentials 
2. Después de haber clonado este proyecto vamos a ingresar a las siguientes carpetas
  • cd node-essentials/nodejs-http/exercise-express-routing/reading-writing
3. Al momento de estar dentro de estas carpetas vamos a verificar si estas los siguientes archivos
  • app.js
  • client-get.js
  • client-post.js
  • client-put.js
  • client-delete.js
  • client-delete-route.js
  • package.json
4. En el archivo package.json verificamos si esta instalado express, si no esta colocar el siguiente comando 
  • npm install express
5. Al momento de ser instalado se va a dirigir a archivo app.js y tenemos que verificar si tiene la siguiente información 


const express = require('express')
const app = express()
const port = 3000

let bodyParser = require('body-parser');
app.use(bodyParser.json());

let products = [];

app.post('/products', function(req, res) {
  // implement
});

app.put('/products', function(req, res) {
  // implement
});

app.delete('/products/:id', function(req, res) {
  // implement
});

app.get('/products', (req, res) => {
  // implement
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`));

  • En esta parte vemos las rutas que se van a implementar el app.post nos sirve enviar datos a la url, el put nos sirve poner un recurso en un lugar especifico, el delete nos sirve para eliminar datos y por ultimo el app.get solo nos mostraría por pantalla la información que deseemos saber y que se este ingresado al sistema. 

IMPLEMENTAMOS LAS RUTAS

1. Vamos a ver el funcionamiento de la primera ruta

app.get('/products', (req, res) => {
  res.json(products);
})

  • Para verificar su funcionamiento implementamos en siguiente comando 
node app.js


  • Como podemos notar el servidor si funciona.
  • Con la ayuda de otro terminal vamos a copiar el siguiente comando 
node client-get.js


  • y como lo pueden notar nos dará una respuesta asi
Received data []
Connection closed

IMPLEMENTAMOS LA ESCRITURA 

1. Con la ayuda de los siguientes comandos vamos a poder implementar la escritura 

app.post('/products', function(req, res) {
  const newProduct = { ...req.body, id: products.length + 1 }
  products = [ ...products, newProduct]
  res.json(newProduct);
});

  • Esto nos sirve para agregar productos en este caso.
  • Para probar que esta funcionando volvemos a cargar el servidor 
node app.js

  • Y para verificar copiamos el siguiente comando 
node client-post.js



  • Para comprobar nos dará la siguiente respuesta 
response {"name":"product","id":1}
Closed connection

2. Para verificar que los datos estén correctamente ingresados vamos a escribir el siguiente comando 

  • node client-get.js


  • Esto nos dará como respuesta 
Received data [{"name":"product","id":1}]
Connection closed


IMPLEMENTAR PARA ACTUALIZAR DATOS

1. Copiar el siguiente código

app.put('/products', function(req, res) {
  let updatedProduct;
  products = products.map(p => {
    if (p.id === req.body.id) {
      updatedProduct = { ...p, ...req.body };
      return updatedProduct;
    }
    return p;
  })
  res.json(updatedProduct);
});

  • Este nos sirve para poder actualizar los datos
  • Volvemos a cargar el servidor 
node app.js

  • En la segunda terminal 
node app.js

node client-post.js

node client-put.js

response {"name":"product-updated","id":1}
Closed connection

  • Para comprobar que las actualizaciones funciones ejecuta los siguientes comandos
node client-get.js

Received data [{"name":"product-updated","id":1}]
Connection closed


IMPLEMENTAR ELIMINACIÓN

1.Esta nos sirve para eliminar datos

app.delete('/products/:id', function(req, res) {
  const deletedProduct = products.find(p => p.id === +req.params.id);
  products = products.filter(p => p.id !== +req.params.id);
  res.json(deletedProduct);
});

  • Para probar que funciona implementamos los siguientes comandos
 node app.js

node client-post.js

node client-delete.js

Received data {"name":"product","id":1}
Connection closed


  • Para verificar los datos copiar los siguientes comandos
node client-get.js

Received data []
Connection closed


BUENO ESO FUE TODO OJALA LES SIRVA Y SUERTE XD



Vamos a crear una API (Utilizando CRUD)

¿Qué es una API? Una API significa Interfaz de Programación de Aplicaciones esta suele ser utilizada para el desarrollo de las aplicaciones ...