Aprovecha el precio especial.

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

13d

11h

17m

34s

1

Breve Tutorial aplicando una Restful API con NodeJs

buenas tardes, me llamo Federico Arias, en esta ocasion vamos a ver como crear nuestra propia tienda virtual de productos de limpieza.
Para ello necesitaremos tener un ambiente de desarrollo en NodeJs, usaremos el Vs Code como editor de codigo y el modulo Express de Node para crear el servidor y hacer las consultas.
Como primer medida:

  1. Vemos creamos un archivo index.js en el root de nuestro repositorio en el cual introduciremos los endpoints para establecer la API. Para encontrar el codigo, entramos a la documentacion de Express:
    https://expressjs.com/en/starter/hello-world.html
  2. En nuestro caso, crearemos nuestro propio proceso CRUD para la API y haremos las consultas a traves del software Insonmia.
    Usamos GPT con el siguiente Prompt:
    “hi gpt i want to create an API with express in nodejs, could you make me a tutorial for generating the code that uses the CRUD for retriving, updating and deleting the data? i want every endpoint to be described please”.
  3. GPT nos mostrara paso a paso como crear los procesos CRUD para hacer uso de la informacion.
    Nuestro archivo index.js nos quedaria algo asi:
const express = require("express"); //importamos el modulo expressconst app = express();			//inicializamos la instanciaconst port = 3040;				//definimos el puerto del servidorconst productos =[				//creamos el arreglo con algunos items de limpieza
  {id:1, name: 'Lavandina de 1 litro marca Sapolio', precio: 8, Stock: 150},
  {id:2, name: 'Ambientador Spray de 330 ml marca Arom', precio: 10, Stock: 80},
  {id:3, name: 'Lavavajillas de 1 litro Ozono',precio: 8.5,Stock: 25},
  {id:4, name: 'Limpiador Sacasarro de 1 litro marca Ozono', precio: 9.5, Stock: 72}
];

app.get("/", (req, res) =>{		//callback para mandar una respuesta que enviaremo al cliente.
  res.send("Hola mi server en Express");
});

// Obtenemos todos los productos
app.get("/productos", (req, res) =>{		//agregamos el nuevo endpoint productos y la respuesta en Json.
    res.json([productos]);
  });

//Obtenemos un solo producto segun su propio id
app.get('/productos/:id', (req, res) => {
  const id = parseInt(req.params.id);
  const item = productos.find((item) => item.id === id);

  if (item) {
    res.json(item);
  } else {
    res.status(404).json({ error: 'producto no encontrado' });
  }
});

// Create a new data item
app.post('/productos', (req, res) => {
  const newItem = req.body;
  productos.push(newItem);

  res.status(201).json(newItem);
  res.send('Item agregado correctamente!');
});

// Editar un producto
app.put('/productos/:id', (req, res) => {
  const id = parseInt(req.params.id);
  const updatedItem = req.body;
  const index = productos.findIndex((item) => item.id === id);

  if (index !== -1) {
    productos[index] = { ...productos[index], ...updatedItem };
    res.json(productos[index]);
    res.send('Prouducto editado correctamente!');
  } else {
    res.status(404).json({ error: 'Producto no encontrato!' });
  }
});

// Delete a data item by ID
app.delete('/productos/:id', (req, res) => {
  const id = parseInt(req.params.id);
  const index = productos.findIndex((item) => item.id === id);

  if (index !== -1) {
    const deletedItem = productos.splice(index, 1);
    res.json(deletedItem[0]);
  } else {
    res.status(404).json({ error: 'Producto no encontrato!' });
  }
});

app.listen(port, () =>{			//callback para imprimir en consola que el servidor esta funcionando.console.log("My port: " + port);
});

  1. Posteriormente, probaremos los endpoints.
    Vamos al navegador e introducimos http://localhost:3040/productos/4 para ver el item 4:
    // 20230701145520
    // http://localhost:3040/productos/4

{
“id”: 4,
“name”: “Limpiador Sacasarro de 1 litro marca Ozono”,
“precio”: 9.5,
“Stock”: 72
}
5) Para crear un producto:
Here’s an example of how you can create a new data item by sending a POST request to http://localhost:3000/data:

Open your preferred API testing tool, such as Postman.
Set the HTTP method to POST.
Set the URL to http://localhost:3000/data.
Set the request body to JSON format. For example, you can use the following JSON payload:
json
Copy code
{
“id”: 3,
“name”: “Alice Johnson”,
“age”: 28
}
Send the POST request.
If the request is successful, you should receive a response with the newly created data item, including the assigned ID. The response will be in JSON format, and it should look like this:

json
Copy code
{
“id”: 3,
“name”: “Alice Johnson”,
“age”: 28
}
5.1) Algo no menos, estuve 1 hora intentando crear un item pero no pude porque falto una dependencia: npm install body-parser
ademas en el archivo .js debemos agregar la configuracion de como parsear el body al hacer el put:
const bodyParser = require(‘body-parser’);//para poder parsear el body al ingresar nuevos items
app.use(bodyParser.json()); //config para poder parsear el body del request
app.use(bodyParser.urlencoded({ extended: true }));
6) Ademas pasamos a insomnia el reques en el body as a json:
{
“id”: 30,
“name”: “Detergente Ace de 5 kilos”,
“precio”: 28,
“stock”: 2
}

Eso es todo, luego el Delete y update funcionan bien.
Espero aportar a la comunidad.
Saludos,

Escribe tu comentario
+ 2