Aprovecha el precio especial

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comienza ahora

Termina en:

03d

19h

59m

59s

1

Primeros Pasos para Crear una API REST en Node con Buenas Prácticas

En este tutorial vamos a construir una API REST en Node usando Express y siguiendo buenas prácticas de desarrollo. Dividiremos el proceso en varias secciones para que puedas entender cada paso. Además, te recomiendo usar herramientas de Inteligencia Artificial (IA) para generar datos de ejemplo o para ayudarte a resolver dudas sobre temas que no domines completamente. La IA puede inspirarte con datos ficticios y sugerir soluciones, permitiéndote enfocarte en la estructura y las buenas prácticas de tu código. 🤖


1. Configuración del Proyecto 📦

1.1 Inicialización del Proyecto y Dependencias

Primero, crea una carpeta para tu proyecto y luego inicialízalo con tu gestor de paquetes favorito (en este ejemplo, se usa pnpm):

pnpm init

Instala las dependencias necesarias, como Express y herramientas para mantener un código limpio, como ESLint y Prettier:

pnpm add express
pnpm add -D eslint eslint-config-prettier globals nodemon prettier

Tu archivo package.json se verá similar a este:

{
  "name": "my-store",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "nodemon index.js",
    "start": "node index.js",
    "lint": "eslint ."
  },
  "type": "module",
  "keywords": [],
  "author": "",
  "license": "ISC",
  "packageManager": "[email protected]",
  "devDependencies": {
    "eslint": "^9.22.0",
    "eslint-config-prettier": "^9.0.0",
    "globals": "^14.0.0",
    "nodemon": "^3.1.9",
    "prettier": "^3.5.3"
  },
  "dependencies": {
    "express": "^4.21.2"
  }
}

1.2 Configuración de ESLint

Para asegurarte de seguir buenas prácticas, configura ESLint. Crea un archivo llamado eslint.config.mjs y agrega la siguiente configuración:

import { defineConfig } from"eslint/config";import globals from"globals";import prettier from"eslint-config-prettier";

exportdefault defineConfig([
  {
    languageOptions: {
      globals: {
        ...globals.node,
        ...globals.jest,
      },
      ecmaVersion: 2018,
      sourceType: "module",
    },
    rules: {
      "no-console": "warn",
      "no-unused-vars": "error",
      "no-undef": "error", // Error si se usa una variable no definida"init-declarations": ["error", "always"], // Fuerza la inicialización en la declaración"no-use-before-define": ["error", { functions: false, classes: true, variables: true }],
      "prefer-const": "error"// Recomienda const si la variable no se reasigna
    },
  },
  prettier,
]);


2. Creando un Servidor Básico con Express 🌐

2.1 Importando Express y Creando la Aplicación

Comienza importando Express y creando una instancia de la aplicación. Establece también el puerto en el que el servidor escuchará:

import express from'express';

const app = express();
const PORT = 3000;

app.listen(PORT, () => {
  console.log(`Escuchando en puerto ${PORT}`);
});

2.2 Primer Endpoint: La Raíz ("/")

Define el primer endpoint que responderá en la ruta /. Este endpoint enviará una respuesta básica. Inicialmente, puedes simplemente mostrar un mensaje o un HTML básico:

const htmlContent = `

  My Store

  My Store
  Products
  About
  API

`;

app.get('/', (req, res) => {
  // Se reemplaza el título para mostrar un saludo personalizado
  res.send(htmlContent.replace('My Store', 'Hola Express'));
});

Esta sección te enseña a iniciar un servidor básico y a crear un endpoint que envía una respuesta HTML simple. 😃


3. Integrando HTML y Navegación 🖥️

3.1 Creación del HTML Base

El contenido HTML se utiliza para facilitar la navegación entre las diferentes secciones de la aplicación. En nuestro ejemplo, el HTML contiene botones que redirigen a distintas rutas.

3.2 Añadiendo Navegación

Observa cómo se utilizan los botones con la propiedad onclick para navegar a los endpoints /products, /about y /api. Esto te ayudará a entender cómo integrar la parte del front-end con tu servidor:

<buttononclick="location.href='/products'">Productsbutton>
<buttononclick="location.href='/about'">Aboutbutton>
<buttononclick="location.href='/api'">APIbutton>


4. Creación de la API y Endpoints para Productos 📊

4.1 Definiendo Datos de Ejemplo

Para la API, se utiliza un array de objetos que simulan productos. Puedes usar IA para generar estos datos de ejemplo si no dispones de datos reales o deseas experimentar con datos ficticios. La IA puede ayudarte a sugerir atributos, nombres y otros detalles para enriquecer tus ejemplos.

const products = [
  {
    id: 1,
    name: 'Joya',
    price: 50,
    description: 'Hermosa joya artesanal',
    category: 'Accesorios',
    stock: 10,
    rating: 4.5,
  },
  // ... otros productos
];

4.2 Endpoint para Listar Productos

Este endpoint genera una tabla HTML con la información de cada producto. Se utiliza la función map para recorrer el array y generar las filas de la tabla:

app.get('/products', (req, res) => {
  const productsTable = `

      ${products.map(product => `

      `).join('')}

        ID
        Nombre
        Precio
        Descripción
        Categoría
        Stock
        Rating

          ${product.id}${product.name}${product.price}${product.description}${product.category}${product.stock}${product.rating}

  `;
  res.send(htmlContent.replace('My Store', `Products${productsTable}`));
});

4.3 Endpoint para Detalle de Producto

Permite ver los detalles de un producto específico a través de un parámetro en la URL:

app.get('/products/:id', (req, res) => {
  const product = products.find(p => p.id === parseInt(req.params.id));
  if (product) {
    const productDetails = `
      Product Details
      ID: ${product.id}
      Nombre: ${product.name}
      Precio: ${product.price}
      Descripción: ${product.description}
      Categoría: ${product.category}
      Stock: ${product.stock}
      Rating: ${product.rating}
      Back to Products
    `;
    res.send(htmlContent.replace('My Store', productDetails));
  } else {
    res.status(404).send('Product not found');
  }
});

4.4 Endpoint de la API

Finalmente, crea un endpoint que responda con la información de los productos en formato JSON. Esto es útil para el consumo de la API por parte de otras aplicaciones:

app.get('/api', (req, res) => {
  res.json(products);
});


5. Puesta en Marcha del Servidor 🔧

Para arrancar tu servidor, utiliza el siguiente código:

app.listen(PORT, () => {
  console.log(`Escuchando en puerto ${PORT}`);
});

Ejecuta el servidor en modo desarrollo con:

pnpm dev

Con esto, tu servidor estará corriendo y listo para atender las solicitudes en las rutas definidas. 👍


6. Buenas Prácticas y Uso de IA 💡

6.1 Buenas Prácticas en el Desarrollo

  • Estructura del Código: Mantén tu código modular y bien organizado. Divide el código en archivos según su funcionalidad.
  • Configuración de Linter: Usa herramientas como ESLint y Prettier para garantizar un código limpio y consistente.
  • Comentarios y Documentación: Explica cada parte del código para facilitar su comprensión y mantenimiento.
  • Pruebas y Validación: Implementa pruebas unitarias y de integración para asegurar el correcto funcionamiento de tus endpoints.

6.2 Uso de IA para Datos de Ejemplo y Asesoramiento

Usar IA puede ser de gran ayuda en diversas áreas:

  • Generación de Datos de Ejemplo: Si no tienes datos reales, puedes usar IA para crear datos ficticios que se ajusten a tu modelo. Esto es especialmente útil para prototipos o durante el desarrollo.
  • Resolución de Dudas: La IA puede sugerir soluciones o explicaciones para temas complejos, ayudándote a comprender mejor ciertos conceptos o a resolver problemas que se te presenten.
  • Optimización de Código: Algunas herramientas basadas en IA pueden revisar tu código y ofrecer sugerencias para mejorarlo, basándose en las mejores prácticas de la industria.

Aprovechar estas herramientas te permitirá acelerar el desarrollo y mejorar la calidad de tus proyectos, dándote mayor confianza en la solución final. 🤩


7. Conclusión 🎉

En este tutorial has aprendido:

  • Cómo inicializar un proyecto en Node y configurar dependencias.
  • La creación de un servidor básico con Express.
  • La configuración de endpoints para devolver respuestas HTML y JSON.
  • La integración de buenas prácticas de codificación mediante ESLint y Prettier.
  • La utilidad de la IA para generar datos de ejemplo y resolver dudas.

¡Ahora ya tienes los fundamentos para crear y escalar una API REST en Node usando buenas prácticas! Recuerda que la clave está en estructurar tu proyecto de manera modular, seguir las recomendaciones de los linters y estar abierto a usar herramientas innovadoras como la IA para mejorar tu flujo de trabajo.


Conecta y Comparte 🚀

Encuentra más proyectos y conecta conmigo en GitHub: https://github.com/nicoarbelaez

¡Feliz codificación y sigue explorando! 🎊

Escribe tu comentario
+ 2