Cómo Manejar Errores y Enviar Correos Electrónicos en Caso de Excepciones en FastAPI

Tiempo de lectura: 2 minutos

En el desarrollo de API con FastAPI en Python, la gestión adecuada de errores es crucial para asegurar un funcionamiento sin problemas. En este tutorial, aprenderemos a implementar un sistema de manejo de excepciones que enviará automáticamente un correo electrónico al administrador cuando ocurra un error en nuestra API.

Paso 1: Configuración del Archivo handler.py

En primer lugar, crearemos un archivo llamado handler.py que contendrá nuestras funciones de manejo de excepciones y envío de correos. Este archivo se puede importar en todos los módulos de nuestra aplicación.

# handler.py
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Establecer la dirección de correo electrónico a la que se enviará el mensaje
destinatario = 'contacto@email.com'

# Función para enviar un correo electrónico
def enviar_correo(mensaje, destinatario):
    # Configuración del servidor de correo
    servidor_correo = smtplib.SMTP('smtp.tu-servidor.com', 587)
    servidor_correo.starttls()
    servidor_correo.login('tu-correo@gmail.com', 'tu-contrasena')

    # Crear el mensaje de correo electrónico
    mensaje_correo = MIMEMultipart()
    mensaje_correo['From'] = 'tu-correo@gmail.com'
    mensaje_correo['To'] = destinatario
    mensaje_correo['Subject'] = 'Error en la API de FastAPI'
    mensaje_correo.attach(MIMEText(mensaje, 'plain'))

    # Enviar el correo electrónico
    servidor_correo.send_message(mensaje_correo)
    servidor_correo.quit()

# Función para manejar excepciones
def manejar_excepcion(excepcion):
    # Obtener información sobre la excepción
    mensaje = f'Se ha producido un error en la API de FastAPI.\n\n' \
              f'Mensaje de error: {excepcion}\n'

    # Enviar un correo electrónico con la información del error
    enviar_correo(mensaje, destinatario)

    # Puedes registrar el error en algún otro lugar, como un archivo de registro

    # Puedes personalizar la respuesta de error a la API si lo deseas

    return {'error': 'Se ha producido un error. El administrador ha sido notificado.'}

Paso 2: Uso del Archivo handler.py en Tu Aplicación FastAPI

Ahora, en cada uno de tus módulos de FastAPI, importa el archivo handler.py al principio para habilitar el manejo de excepciones y el envío de correos electrónicos.

# main.py
from fastapi import FastAPI
from handler import manejar_excepcion

app = FastAPI()

# Establecer la función de manejo de excepciones personalizada
app.add_exception_handler(Exception, manejar_excepcion)

# Definir tus rutas y lógica de la aplicación a continuación

Conclusión:

Con estos pasos, has implementado un sistema básico pero efectivo de manejo de excepciones en tu aplicación FastAPI en Python, que enviará automáticamente correos electrónicos al administrador cuando se produzca un error. Asegúrate de personalizar las funciones según tus necesidades específicas y ten en cuenta que este es solo un punto de partida; puedes expandir y mejorar esta funcionalidad según los requisitos de tu proyecto.

¡Ahora estás mejor equipado para mantener y administrar tu API FastAPI de manera más efectiva!

Deja un comentario