Migrar una automatización de Zapier o Make a un nuevo host de geocodificación
Las automatizaciones sin código basadas en un paso de geocodificación necesitan un enfoque de migración distinto al del código propio. Así puedes gestionar ese cambio.
En una migración, las respuestas correctas reciben casi toda la atención, ya que son lo que muestra una demo y lo que suele comprobar una primera ronda de pruebas. Las respuestas de error reciben mucha menos atención, y eso es justo al revés de lo que debería ser, porque el código de gestión de errores suele ser lo primero que falla, y de la forma más visible, en producción cuando un proveedor cambia por debajo de una aplicación.
Cada proveedor de geocodificación y de datos de ubicación tiene sus propias convenciones para señalar un fallo: algunos usan exclusivamente códigos de estado HTTP, otros incluyen un campo de estado dentro de una respuesta JSON que por lo demás tiene estado 200, algunos distinguen entre «no se encontraron resultados» y «solicitud no válida» con códigos diferentes, y otros agrupan ambos en un error genérico. La lógica de reintentos de una aplicación, los mensajes de error que ven los usuarios y las alertas de monitorización suelen construirse en torno a las convenciones de error de un proveedor concreto, a veces sin que nadie documente esa dependencia de forma explícita.
Antes de cambiar de proveedor, conviene construir una tabla de correspondencia explícita entre las respuestas de error del proveedor anterior y las del nuevo, que cubra como mínimo:
My Geocode documenta sus respuestas de error y sus convenciones de estado en /docs/errors/, y cada respuesta incluye además cabeceras de cuota, X-Quota-Limit, X-Quota-Used, X-Quota-Free-Remaining, X-Quota-Network-Used, X-Credits-Remaining, X-Key-IPs-Used, X-Key-IPs-Limit y X-Quota-Reset, que cubren una categoría de información (estado de cuota y de frecuencia) que algunos proveedores esconden dentro del cuerpo de las respuestas de error en lugar de exponerla directamente en cabeceras. Comprobar si tu lógica de reintentos actual lee la información de cuota del cuerpo de la respuesta o de una cabecera es un punto concreto que conviene añadir a una lista de verificación de migración, ya que la información de cuota en cabeceras suele ser más fácil de leer sin tocar la ruta de análisis de la respuesta que se usa para los datos reales.
Una forma práctica de construir la tabla de correspondencia es provocar deliberadamente cada condición de error contra el proveedor anterior y el nuevo en un entorno de pruebas, en lugar de confiar solo en la documentación, ya que la documentación y el comportamiento real no siempre coinciden exactamente, en ningún proveedor. Envía una solicitud mal formada, agota deliberadamente una pequeña cuota de prueba y envía una clave no válida, y luego anota exactamente qué devuelve cada proveedor en cada caso.
Este tipo de trabajo de correspondencia de errores rara vez aparece en el plan de proyecto de una migración porque no produce una función visible, pero es desproporcionadamente responsable de cómo se recuerda una migración después. Una migración que cambia limpiamente las respuestas correctas pero deja rota la gestión de errores suele generar muchos más tickets de soporte en las primeras semanas tras el cambio que una que solo acertó en parte con el camino feliz.