API, rozhranie pre programovanie aplikácií, je len zdokumentovaný spôsob, ako jeden softvér požiada iný softvér o údaje alebo aby sa niečo stalo. Keď CRM odošle nový kontakt na e-mailovú platformu alebo e-shop odošle objednávku do účtovného systému, používajú API.
Tri bežné vzory
Požiadavka / odpoveď
Jeden systém sa pýta, druhý odpovedá: "daj mi tohto zákazníka", "vytvor túto objednávku". Jednoduché a predvídateľné, ale vyžaduje, aby jedna strana vedela, kedy sa má pýtať.
Webhooky
Namiesto opakovaného pýtania zdrojový systém posiela udalosť na URL, keď sa niečo stane: "bola vytvorená nová faktúra", "platba prebehla úspešne". Nižšia latencia a vyššia efektivita pre toky riadené udalosťami.
Naplánovaná synchronizácia
Periodické úlohy presúvajú údaje v dávkach, každú hodinu, každú noc, každý týždeň. Užitočné, keď aktuálnosť nie je kritická a posielanie je nepraktické.
Väčšina integrácií v reálnom svete kombinuje aspoň dva z týchto vzorov.
Čo robí integráciu spoľahlivou
- Jasné vlastníctvo údajov. Jeden systém je zdrojom pravdy pre každý údaj. Ostatné dostávajú kópie.
- Idempotentné operácie. Opakovanie toho istého volania dvakrát produkuje rovnaký výsledok, nevyhnutné pre webhooky a nestabilné siete.
- Viditeľné spracovanie chýb. Zlyhania smerujú tam, kde ich vidí človek, nie do tichého logu, ktorý nikto nečíta.
- Rešpektovanie limitov volaní. Dobré integrácie spomalia, keď je druhá strana pomalá alebo obmedzená.
- Povedomie o verzovaní. API sa menia. Berte integráciu ako kód, ktorý potrebuje aktualizácie, nie ako jednorazové zapojenie.
Čo robí integráciu krehkou
- CSV exporty rozosielané e-mailom po firme a manuálne znova importované.
- Natvrdo zapísané prihlasovacie údaje na miestach, ktoré si nikto nepamätá.
- Jeden dlhý skript, ktorý robí všetko bez logiky opakovaní.
- Tiché zlyhania, údaje prestanú prúdiť a nikto si to týždne nevšimne.
- Obojsmerná synchronizácia bez jasných pravidiel konfliktov: ktorá strana vyhráva, keď sa zmenili obe?
Middleware alebo priama integrácia?
Existujú tri hlavné prístupy:
- Priama integrácia: systém A komunikuje priamo so systémom B. Najjednoduchšie pre jedno prepojenie, stáva sa to neprehľadným, keď je ich veľa.
- Integračná platforma (iPaaS): dedikovaný nástroj ako platforma pracovných tokov spravuje konektory. Dobré pre jednoduché, bežné toky; môže byť drahé a nepriehľadné pre zložitú logiku.
- Vlastný middleware: malá interná služba, ktorá vlastní integračnú logiku, preklady a spracovanie chýb. Často správna voľba, keď je logika špecifická pre podnik.
Najlepšia odpoveď závisí od toho, koľko systémov spolu musí komunikovať, koľko vlastnej logiky je zapojenej a či chcete obchodné pravidlá v používateľskom rozhraní dodávateľa alebo v kóde, ktorý vlastníte.
Konkrétny príklad webhooku
Povedzme, že e-commerce platforma by mala upozorniť váš účtovný systém vždy, keď je objednávka zaplatená. Namiesto dopytovania každú minútu obchod zavolá váš endpoint s malým JSON payloadom:
{
"event": "order.paid",
"event_id": "evt_8f3c21a9",
"occurred_at": "2024-11-12T09:41:07Z",
"order": {
"id": "ORD-10427",
"total": 1499.00,
"currency": "PLN",
"customer_email": "k.nowak@example.com"
}
}
Prijímajúca služba by mala požiadavku prijať, overiť hlavičku s podpisom, uložiť event_id a rýchlo vrátiť 200. Skutočná práca, ako napríklad vytvorenie faktúry, prebieha v úlohe na pozadí. Ak tá istá udalosť príde dvakrát, uložené event_id zabráni duplicitnej faktúre.
Pravidlo: obsluha webhookov by mala potvrdiť rýchlo a prácu vykonávať asynchrónne. Čokoľvek pomalé alebo krehké, volanie API tretej strany, vykreslenie PDF, patrí do fronty, nie do HTTP obsluhy.
Spracovanie opakovaní bez duplicít
Každá spoľahlivá integrácia potrebuje kľúč idempotencie. Minimálny vzor v pseudokóde:
async function handleOrderPaid(event) {
if (await seen(event.event_id)) return; // already processed
await markSeen(event.event_id);
await queue.enqueue('create-invoice', event.order);
}
Bežné chyby
- Príliš skorá integrácia. Ak proces nie je stabilný, integrácia zakóduje neporiadok a sťaží jeho zmenu.
- Obojsmerná synchronizácia ako predvolená. Jednosmerná je jednoduchšia a často postačujúca, prejdite na obojsmernú, len ak to podnik skutočne potrebuje.
- Žiadny monitoring. Integrácia bez upozornení je tiché zlyhanie čakajúce na svoju chvíľu.
- Tesné prepojenie. Zmeny v jednom systéme by nemali rozbiť všetky ostatné. Udržujte prekladovú vrstvu.
Realistický prístup
- Nakreslite tok údajov: ktorý systém vlastní ktoré pole a kto potrebuje kópie.
- Začnite najbolestivejším jednotlivým tokom a najprv ho vybudujte jednosmerne.
- Použite webhooky tam, kde záleží na nízkej latencii, naplánovanú synchronizáciu tam, kde nie.
- Pridajte monitoring od prvého dňa, nie až po prvom výpadku.
- Zdokumentujte prihlasovacie údaje, endpointy a vlastníctvo, aby integrácia prežila personálne zmeny.

