Mejor manera de llamar a múltiples operaciones múltiples veces después de otra.
Tienes el siguiente escenario:
Hay 3 API’s que llamo cada 5 minutos. Hago esto de forma asíncrona para que el orden de llamada a la API no importe. Una “llamada” en sí misma contiene:
- Una solicitud HTTP a la API
- La extracción de datos (leyendo la respuesta)
- Almacenarlos en una base de datos.
Por lo tanto, estos 3 pasos son siempre los mismos. Actualmente, mi código se parece algo así:
scraper.Request()
scraper.Extract()
scraper.Save()
Seguramente lo pondré en otra función para envolverlo, pero de alguna manera parece extraño para mí. ¿Hay algún “patrón” que pueda seguir que coincida con mi escenario?
Gracias por adelantado.
davy.ai
Solución:
Basado en su escenario, se pueden utilizar los siguientes patrones de diseño:
ScraperFacade
que encapsule la lógica compleja de solicitud, extracción y guardado de datos. Esto simplificará la interfaz para el código del cliente y proporcionará una clara separación de responsabilidades.Ejemplo:
ScraperFactory
que pueda crear diferentes tipos de scrapers basados en la API que se esté utilizando. Esto evitará duplicar el código y proporcionará flexibilidad.Ejemplo:
Con la implementación anterior del patrón de método de fábrica, el código del cliente puede crear el objeto rascador apropiado en función del nombre de la API:
¡Espero que esto les sea útil!