En esta sección, aprenderemos a crear un servidor básico para una API RESTful. Utilizaremos Node.js y Express, un framework minimalista y flexible para aplicaciones web en Node.js. Este módulo cubrirá los siguientes temas:
- Configuración del entorno de desarrollo
- Instalación de Node.js y Express
- Creación de un servidor básico con Express
- Manejo de rutas y respuestas
- Configuración del entorno de desarrollo
Antes de comenzar, asegúrate de tener instalado Node.js en tu máquina. Puedes descargarlo desde nodejs.org. También necesitarás un editor de código, como Visual Studio Code.
- Instalación de Node.js y Express
Instalación de Node.js
Para verificar si Node.js está instalado correctamente, abre una terminal y ejecuta:
Deberías ver la versión de Node.js instalada. Si no, sigue las instrucciones en el sitio web de Node.js para instalarlo.
Instalación de Express
Primero, crea un nuevo directorio para tu proyecto y navega a él:
Inicializa un nuevo proyecto Node.js:
Esto creará un archivo package.json
con la configuración predeterminada. Ahora, instala Express:
- Creación de un servidor básico con Express
Crea un archivo llamado server.js
en el directorio de tu proyecto. Este archivo contendrá el código para nuestro servidor básico.
Código del servidor básico
// Importar el módulo Express const express = require('express'); // Crear una instancia de Express const app = express(); // Definir el puerto en el que el servidor escuchará const PORT = process.env.PORT || 3000; // Definir una ruta básica app.get('/', (req, res) => { res.send('¡Hola, mundo!'); }); // Iniciar el servidor app.listen(PORT, () => { console.log(`Servidor escuchando en el puerto ${PORT}`); });
Explicación del código
- Importar Express: Importamos el módulo Express para utilizar sus funcionalidades.
- Crear una instancia de Express: Creamos una instancia de la aplicación Express.
- Definir el puerto: Establecemos el puerto en el que el servidor escuchará las peticiones. Usamos una variable de entorno
PORT
si está disponible, o el puerto 3000 por defecto. - Definir una ruta básica: Definimos una ruta GET en la raíz (
/
) que responde con el mensaje "¡Hola, mundo!". - Iniciar el servidor: Iniciamos el servidor y hacemos que escuche en el puerto definido. También imprimimos un mensaje en la consola para confirmar que el servidor está funcionando.
Ejecutar el servidor
Para ejecutar el servidor, abre una terminal en el directorio de tu proyecto y ejecuta:
Deberías ver el mensaje "Servidor escuchando en el puerto 3000" en la consola. Abre tu navegador y navega a http://localhost:3000
. Deberías ver el mensaje "¡Hola, mundo!".
- Manejo de rutas y respuestas
Ahora que tenemos un servidor básico en funcionamiento, vamos a añadir más rutas y manejar diferentes tipos de respuestas.
Añadir más rutas
Vamos a añadir una ruta para obtener información sobre usuarios. Modifica tu server.js
para incluir la siguiente ruta:
// Ruta para obtener información de usuarios app.get('/users', (req, res) => { const users = [ { id: 1, name: 'Juan' }, { id: 2, name: 'María' }, { id: 3, name: 'Pedro' } ]; res.json(users); });
Explicación del código
- Definir una nueva ruta: Definimos una ruta GET en
/users
. - Crear datos de ejemplo: Creamos un array de objetos que representan usuarios.
- Enviar respuesta en formato JSON: Utilizamos
res.json()
para enviar los datos de usuarios en formato JSON.
Probar la nueva ruta
Reinicia tu servidor (presiona Ctrl+C
en la terminal y luego ejecuta node server.js
nuevamente) y navega a http://localhost:3000/users
. Deberías ver la lista de usuarios en formato JSON.
Ejercicio práctico
Ejercicio 1: Añadir una ruta para productos
Añade una nueva ruta /products
que devuelva una lista de productos en formato JSON. Cada producto debe tener un id
, un name
y un price
.
Solución
// Ruta para obtener información de productos app.get('/products', (req, res) => { const products = [ { id: 1, name: 'Laptop', price: 1000 }, { id: 2, name: 'Mouse', price: 20 }, { id: 3, name: 'Teclado', price: 50 } ]; res.json(products); });
Ejercicio 2: Manejar una ruta no encontrada
Añade un manejador para rutas no encontradas (404). Si un usuario intenta acceder a una ruta que no existe, el servidor debe responder con un mensaje de error.
Solución
// Manejador para rutas no encontradas app.use((req, res) => { res.status(404).send('Ruta no encontrada'); });
Conclusión
En esta sección, hemos aprendido a configurar un entorno de desarrollo, instalar Node.js y Express, y crear un servidor básico con Express. También hemos visto cómo manejar rutas y respuestas en nuestro servidor. En el próximo módulo, profundizaremos en el manejo de peticiones y respuestas, incluyendo la autenticación y autorización.
¡Felicidades por completar esta sección! Ahora estás listo para avanzar al siguiente tema y seguir construyendo tu API RESTful.
Curso de REST API: Principios de Diseño y Desarrollo de APIs RESTful
Módulo 1: Introducción a las APIs RESTful
Módulo 2: Diseño de APIs RESTful
- Principios de diseño de APIs RESTful
- Recursos y URIs
- Métodos HTTP
- Códigos de estado HTTP
- Versionado de APIs
- Documentación de APIs
Módulo 3: Desarrollo de APIs RESTful
- Configuración del entorno de desarrollo
- Creación de un servidor básico
- Manejo de peticiones y respuestas
- Autenticación y autorización
- Manejo de errores
- Pruebas y validación
Módulo 4: Buenas Prácticas y Seguridad
- Buenas prácticas en el diseño de APIs
- Seguridad en APIs RESTful
- Rate limiting y throttling
- CORS y políticas de seguridad
Módulo 5: Herramientas y Frameworks
- Postman para pruebas de APIs
- Swagger para documentación
- Frameworks populares para APIs RESTful
- Integración continua y despliegue