¿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 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