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:

  1. Configuración del entorno de desarrollo
  2. Instalación de Node.js y Express
  3. Creación de un servidor básico con Express
  4. Manejo de rutas y respuestas

  1. 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.

  1. 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:

node -v

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:

mkdir my-api
cd my-api

Inicializa un nuevo proyecto Node.js:

npm init -y

Esto creará un archivo package.json con la configuración predeterminada. Ahora, instala Express:

npm install express

  1. 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

  1. Importar Express: Importamos el módulo Express para utilizar sus funcionalidades.
  2. Crear una instancia de Express: Creamos una instancia de la aplicación Express.
  3. 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.
  4. Definir una ruta básica: Definimos una ruta GET en la raíz (/) que responde con el mensaje "¡Hola, mundo!".
  5. 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:

node server.js

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!".

  1. 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

  1. Definir una nueva ruta: Definimos una ruta GET en /users.
  2. Crear datos de ejemplo: Creamos un array de objetos que representan usuarios.
  3. 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.

© Copyright 2024. Todos los derechos reservados