Artículo técnico

Integración de un Sistema Sin API Pública

Cómo las confirmaciones de pedidos de Grubhub y DoorDash se convirtieron en pedidos nativos de DinDin, sin ninguna API de pedidos a la vista.

Share this article

Cuando un sistema del que depende un producto no tiene API pública, la integración debe construirse contra la interfaz que sí expone, aun cuando esa interfaz haya sido diseñada para una persona y no para un programa. En DinDin, una suite de tecnología conectada para restaurantes, esa interfaz era una bandeja de entrada.

01

Cómo leer este trabajo

El problema: dos marketplaces, sin API de pedidos

Los restaurantes clientes de DinDin reciben pedidos desde varios canales —su propio sitio, su punto de venta y marketplaces de entrega de terceros— y cada uno de esos pedidos debe llegar a la misma impresora de cocina, al mismo reporte y al mismo flujo de trabajo operativo. Los pedidos de Grubhub y DoorDash eran el vacío: ninguno de los dos marketplaces exponía la API de pedidos que este flujo de trabajo necesitaba. Lo que cada marketplace sí envía, de forma confiable, es un correo HTML de confirmación de pedido a la propia bandeja de entrada del restaurante: el mismo correo que un gerente leería manualmente.

02

Cómo leer este trabajo

Construcción de la integración contra la bandeja de entrada

El pipeline se autentica en esa bandeja de entrada compartida y trata cada confirmación entrante como la superficie de integración: analiza el correo HTML de confirmación de pedido, identifica al comercio al que pertenece y extrae el pedido hacia el modelo nativo de pedidos de DinDin. A partir de ahí, resulta indistinguible de un pedido tomado en el propio sitio del restaurante: llega a la misma impresora de cocina y al mismo reporte. La API de Gmail es un punto de referencia razonable de cómo suele construirse una integración autenticada de bandeja de entrada como esta (ver: guías de la API de Gmail, citadas más abajo).

03

Cómo leer este trabajo

Deduplicación: la parte que permite volver a ejecutarlo de forma segura

Una integración basada en correo electrónico debe tolerar volver a ejecutarse: una conexión puede caerse a mitad de una descarga, o un mensaje puede reprocesarse. El pipeline elimina duplicados usando el propio número de pedido de cada marketplace, en lugar de derivar una identidad a partir de contenido de texto libre, de modo que reprocesar el mismo correo de confirmación nunca crea un segundo ticket de cocina. Esta es la misma disciplina de solicitudes idempotentes documentada en el diseño de API de pagos, donde se usa un identificador provisto por el cliente específicamente para que una solicitud reintentada no pueda cobrar ni crear dos veces (ver: documentación de solicitudes idempotentes de Stripe, citada más abajo).

04

Cómo leer este trabajo

A qué se generaliza esto

La lección general no es específica de los restaurantes ni del correo electrónico: cuando un sistema no expone una API, la integración se construye contra la interfaz más estable que sí expone —aunque esté pensada para una persona— y se vuelve segura de reejecutar con la misma disciplina de deduplicación que usaría una integración de API adecuada. Aquí la bandeja de entrada no es una solución alternativa; tratada con la disciplina correcta, es la integración.

Share this article

Referencias

  1. Guías de la API de Gmail — Google for Developers
  2. Solicitudes idempotentes — Documentación de la API de Stripe

Evidence and further reading

All insights →
Case studyDinDinSuite tecnológica completa para restaurantes que conecta pedidos en línea, POS, operaciones administrativas, pantallas de cocina, pantallas para clientes y pedidos de marketplaces. InsightAgente de IA vs. chatbot: ¿cuál necesita su negocio?Qué diferencia realmente a un agente de IA de un chatbot, cuándo encaja cada uno y cómo decidir sin dejarse llevar por el entusiasmo del mercado. InsightCasos de uso de agentes de IA para empresasCasos de uso realistas de agentes de IA para empresas, y las condiciones que hacen que cada uno funcione de verdad.

¿Enfrenta un problema similar?

Revisión de Plataforma e Integraciones

Para fundadores de SaaS y responsables de ingeniería cuya plataforma es cada vez más lenta y arriesgada de cambiar.

Solicitar una evaluación

Let's build what's next

¿Tiene un sistema complejo que debe construirse correctamente?

Tanto si parte de una idea como si sustituye una plataforma existente o escala un sistema, hablemos.

Better Technology.
Brighter Possibilities.

Book a call