Domů / Návody

Návody: monitoring interface driftu a kontraktů

Developer-first návody pro monitoring externích API a HTML kontraktů s deterministickými diffy, incident workflow, baseline acceptance a alerty připravenými pro automatizaci.
Domů / Návody / Jak detekovat breaking změny API v produkci

Jak detekovat breaking změny API v produkci

How-toAPI

Jak zachytit schema drift, odebraná pole a type changes v third-party API dřív, než rozbijí integrace.

Další kroky
Vyberte si cestu, jak monitoring spustit.

Jak detekovat breaking změny API v produkci

Third-party API driftují bez varování. Pokud vaše integrační logika předpokládá včerejší shape payloadu, dnešní rollout upstreamu se může změnit ve váš produkční incident.

Tento návod ukazuje, jak monitorovat API kontrakty jako provozní závislosti, držet diffy deterministické a routovat incidenty správnému ownerovi dřív, než se rozbijí zákaznické toky.

Co se počítá jako breaking drift

Za contract-risk eventy považujte:

  • odebrané pole používané mapováním nebo business logikou
  • přejmenované pole bez zpětně kompatibilního aliasu
  • type change (string na object, number na string)
  • změnu requiredness (nullable na required, optional na required)
  • změnu vnořené shape v polích nebo objektech, které čte downstream kód

Jednoduché pravidlo: pokud by váš parser, validátor nebo transform selhal nebo potichu špatně zpracoval data, berte to jako breaking drift.

Stabilizujte signál (select + ignore + canonicalization)

High-signal monitoring začíná tím, že vyberete jen contract-critical JSON paths a odfiltrujete volatilní metadata.

Priklad pravidel monitoru
JSON
{
  "selectJsonPaths": [
    "data.customer.id",
    "data.customer.status",
    "data.subscription.plan",
    "errors[*].code"
  ],
  "ignoreJsonPaths": [
    "meta.requestId",
    "meta.traceId",
    "meta.generatedAt"
  ]
}

Potom data před diffem a hashováním kanonizujte, aby pořadí polí a ne-semantické formátování nevytvářely false positives. Deterministický vstup dává deterministické diffy.

Triage workflow (incident lifecycle)

Když je detekován smysluplný drift:

  1. Incident se otevře automaticky se strukturovaným diff kontextem.
  2. On-call nebo service owner ho acknowledgedne a převezme triáž.
  3. Pokud je drift nečekaný a opravený, incident resolve.
  4. Když je rollout očekávaný a představuje novou smlouvu, přijměte baseline.

Přijetí baseline má být explicitní provozní rozhodnutí, ne náhodný vedlejší efekt stylu "latest snapshot wins".

Automation a idempotentní mindset

Směrujte eventy diff.detected do incident toolingu a chatops pomocí webhooků. Consumer webhooků držte idempotentní pomocí identity eventu nebo fingerprintu.

Priklad webhook event payloadu
TypeScript
const event = {
  schemaVersion: 'v1',
  eventType: 'diff.detected',
  eventId: 'evt_01JX...',
  occurredAt: '2026-02-11T12:41:00.000Z',
  monitorId: 'mon_123',
  data: {
    diff_fingerprint: 'sha256:abc...',
    diff_summary: { added: 1, removed: 0, changed: 2 },
    changes: [/* structured change records */],
    links: { monitor: '...', diff: '...' },
  },
};

Používejte request ID a delivery logy pro korelaci downstream chyb a retryů.

Začněte tady

Další kroky

  • Definujte Tier 1 API závislosti a přiřaďte jim response ownery.
  • Vytvářejte jeden monitor na externí contract boundary, ne na každou variantu endpointu.
  • Začněte s úzkými selectJsonPaths a rozšiřujte je jen podle potřeby.
  • Ještě před zvýšením frekvence kontrol napojte webhooky na svůj incident systém.

Související návody

Začněte monitorovat s DiffMonem

Použijte API change monitoring pro první contract monitor, rozšiřte ho o website change detection pro HTML a DOM drift a správnou provozní kadenci nastavte na pricing.

Další kroky
Vyberte si cestu, jak monitoring spustit.