Node: HTTP y API REST
Aprende los fundamentos de Node.js para construir un servicio HTTP API REST, configura rutas, procesa datos y optimiza tus proyectos con las mejores prácticas del desarrollo en JavaScript.
Aprende Node GRATIS y certifícateEl desarrollo de un servicio HTTP API REST en Node.js permite construir aplicaciones que respondan a peticiones mediante métodos como GET, POST, PUT o DELETE, facilitando la integración con distintos clientes.
La arquitectura RESTful se basa en la comunicación a través de peticiones HTTP, identificando los recursos mediante rutas y gestionando los estados con códigos estándar de respuesta.
Para comenzar, se recomienda tener una versión reciente de Node.js instalada, de forma que la ejecución y la instalación de librerías funcionen sin incidencias.
Un paso fundamental es instalar Express, un framework minimalista que simplifica la definición de rutas y la gestión de solicitudes y respuestas. Se añade con el siguiente comando:
npm install express
Al crear un proyecto para la API REST, es habitual inicializar un archivo package.json con:
npm init -y
Este archivo describe dependencias e información relevante para manejar la aplicación de Node.js. Posteriormente, se añaden archivos como app.js
o index.js
donde se define la lógica de servidor.
A modo de ejemplo, se puede crear un servidor básico en index.js
:
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
app.get('/usuarios', (req, res) => {
res.json({ mensaje: 'Lista de usuarios' });
});
app.listen(port, () => {
console.log(`Servidor en ejecución en http://localhost:${port}`);
});
Este fragmento de código expone un endpoint /usuarios
que responde con un objeto JSON. Al realizar la petición GET, se recibe un JSON con la información solicitada.
Para procesar datos de cuerpo en peticiones POST o PUT, es necesario declarar app.use(express.json())
. De esta forma, Node.js y Express pueden parsear automáticamente el contenido del cuerpo de la solicitud.
En arquitecturas de microservicios, la separación de endpoints en recursos independientes ayuda a mantener un código ordenado y fácilmente escalable. Una práctica común es organizar cada conjunto de rutas en módulos que se importan en el fichero principal de Express.
Es recomendable utilizar controladores y servicios en tu proyecto para mantener una API REST limpia. Los controladores manejan la lógica de las rutas, mientras que los servicios se encargan de la interacción con la lógica de negocio o la base de datos.
Para gestionar datos en una base externa, se puede utilizar herramientas como Mongoose para MongoDB o Sequelize para SQL. Estas librerías se integran con la aplicación de Node.js y facilitan la realización de operaciones CRUD (Crear, Leer, Actualizar, Eliminar).
Al elaborar un servicio HTTP API REST, resulta aconsejable estructurar las respuestas en formato JSON y utilizar códigos de estado HTTP adecuados. De esta manera, los clientes pueden identificar rápidamente el resultado de sus peticiones y responder en consecuencia.
También es importante manejar errores y excepciones mediante middlewares o controladores de errores, para que la aplicación no se detenga ante situaciones imprevistas y notifique adecuadamente al usuario o desarrollador.
En producción, muchos equipos eligen un gestor de procesos como PM2 para supervisar la ejecución de Node.js, reiniciarla automáticamente en caso de fallos y optimizar el uso de procesos en servidores con múltiples núcleos.
Un ejemplo de uso de HTTP API REST con Node.js es la implementación de microservicios en el sector de comercio electrónico, donde un servicio gestiona el catálogo de productos y otro controla las compras o la facturación.
Una API REST de calidad cuenta con documentación clara y un manejo cuidadoso de los verbos HTTP, manteniendo la coherencia entre rutas y recursos. Esto facilita la colaboración y la integración con otras partes del sistema.
Para asegurar la integridad de los datos, se puede integrar un middleware de validación que compruebe si el payload cumple los requisitos definidos, evitando la inserción de información incompleta o malformada.
Este conjunto de directrices ayuda a aprovechar todo el potencial de Node.js en la construcción de una HTTP API REST que sea fiable, fácil de mantener y óptima en cuanto a rendimiento.
Lecciones de este módulo de Node
Lecciones de programación del módulo HTTP y API REST del curso de Node.