Uso de Variables de Entorno y Mejora de Código en WhatsApp Service
Clase 25 de 28 • Curso de ChatBot con WhatsApp API
Resumen
En el mundo del desarrollo de software, evitar la repetición de código es una práctica clave que mejora la eficiencia y escalabilidad de las aplicaciones. Al unificar lógicas repetitivas y trabajar con un código centralizado, reducimos los riesgos de errores y facilitamos el mantenimiento. En esta guía, exploraremos cómo aplicar estas mejores prácticas al interactuar con la API de WhatsApp, haciendo el sistema más sencillo y eficiente.
¿Cómo comenzamos organizando nuestro código?
Una buena organización del código es esencial para mantener la coherencia y facilitar futuras actualizaciones. Vamos a crear una estructura dedicada en nuestro servicio que encapsulará la lógica relacionada con las solicitudes HTTP.
-
Crear una carpeta específica: Dentro de la sección de
services
, crea una nueva carpeta llamadahttprequests
. Esta será la ubicación donde centralizaremos la lógica de nuestras solicitudes. -
Desarrollar un nuevo archivo: Dentro de
httprequests
, genera un archivo llamadosendToWhatsApp.js
. Aquí consolidaremos el código de las solicitudes a la API. -
Unificar lógicas repetitivas: Dentro de este archivo, trasladaremos la lógica repetida desde distintas partes del código, asegurando que el envío de mensajes se maneje desde un solo lugar.
¿Qué elementos básicos necesitamos en el nuevo archivo?
En nuestro archivo sendToWhatsApp
, seguiremos un procedimiento metódico para asegurar que se encapsulen correctamente las funcionalidades necesarias para manejar las solicitudes.
- Importaciones esenciales: Importar
Axios
y nuestro móduloconfig
para manejar las variables de entorno de manera eficiente.
import axios from 'axios';
import config from '../config'; // Asegúrate de que apunta a la ubicación correcta
- Constante baseURL e Headers: Define el
baseURL
necesario y elheaders
que incluirá la autorización, usando variables de entorno para mayor flexibilidad.
const baseURL = config.baseURL; // Esta se puede definir en las variables de entorno
const headers = {
authorization: `Bearer ${config.apiKey}`
};
- Manejo de solicitudes con try-catch: Implementa un bloque
try-catch
para gestionar errores y asegurar que el flujo del programa sea robusto ante fallos.
const sendToWhatsApp = async (data) => {
try {
const response = await axios({
method: 'post',
url: baseURL,
headers: headers,
data: data,
});
return response.data;
} catch (error) {
console.error('Error sending message:', error);
}
};
¿Cómo actualizamos el servicio de WhatsApp para utilizar esta lógica?
El siguiente paso es actualizar el servicio existente para que se beneficie de nuestra nueva estructura lógica. Esto no solo mejora la claridad del código, sino que también agiliza futuras modificaciones.
-
Eliminar la lógica redundante: Quita los bloques de código redundantes de tus servicios existentes.
-
Utilizar la función centralizada: Ajusta las funciones en
WhatsApp Service
para que usensendToWhatsApp
.
// Ejemplo de uso en otro servicio
const data = {
product: 'WhatsApp',
recipient: 'recipientNumber',
text: 'textMessage'
};
await sendToWhatsApp(data);
- Simplificación y claridad: Observa cómo se simplifica el código en
WhatsApp Service
, haciendo más fácil de leer y mantener.
Al implementar estos cambios, nuestro código no solo se vuelve más claro y eficiente, sino que también aumenta en mantenibilidad. Los desarrolladores mantienen un flujo constante en las actualizaciones del sistema, mitigando potenciales errores relacionados con cambios de última hora en las URLs o tokens de autenticación.
Adopta este enfoque proactivo en tu desarrollo y verá cómo tus aplicaciones se vuelven más robustas y fáciles de mantener. ¡Continúa mejorando y explorando nuevas formas de optimizar el código!