Vistaði þessi útrunna sending vinnuna þína í raun?
Villa í vafranum sannar að svarið komst ekki til skila, ekki að skrifin hafi mistekist. Vistaðu textann, finndu niðurstöðuna í forritinu og ákveddu svo hvort öruggt sé að reyna aftur.
Hnappurinn snýst, flipinn sýnir villu og eyðublaðið sem þú eyddir tíu mínútum í að fylla út er horfið. Það sem þú veist ekki er hvort skrifin náðu fram áður en tengingin dó. Að meðhöndla þessa óvissu sem mistök er leiðin sem tvöföld athugasemdir, tvöfaldar pantanir og endurtekin stuðningsmiðar verða til.
Endurheimtu í föstum röð: haltu textanum, finndu niðurstöðuna og ákveddu þá fyrst hvort önnur sending sé leyfð.
Byrjaðu á textanum og tímastimplinum
Afritaðu efnið af síðunni áður en þú snertir nokkuð annað, þar á meðal hvaða drög sem vafrinn heldur enn í reitnum. Skrifaðu niður tímann, síðuna sem þú varst á og aðgerðina sem þú framkvæmdir, því þessar þrjár upplýsingar gera restina af rannsókninni mögulega. Ef flipinn er enn opinn skaltu láta hann vera opinn þar til þú hefur lesið netfærsluna. Að vista textann kostar ekkert og að týna honum kostar allt verkefnið.
Aðskildu svo tvær tegundir bilunar sem þú getur raunverulega séð. Tenging sem rauf í miðri beiðni og þjónn sem svaraði með villu líta öðruvísi út í netpanelnum, og aðeins sú síðari segir þér eitthvað um ákvörðun forritsins.
Leitaðu niðurstöðunnar í eigin sýn forritsins
Hladdu aftur lestrarsýninni sem myndi sýna niðurstöðuna: athugasemdarlistanum, pöntunarsögunni, miðaröðinni eða færslunni sem þú varst að breyta. Berðu saman eftir reikningi, áfangastað, tíma og efni frekar en nýjustu færslunni, því einhver annar gæti hafa skrifað á eftir þér. Fyrir bakgrunnsverkefni skaltu fletta upp fyrirliggjandi tilvísun og stöðu hennar í stað þess að búa til nýja aðgerð sem tengipróf.
Ef niðurstaðan er þar ertu búinn og villan tilheyrir svarleiðinni, ekki skrifunum. Ef hún er ekki þar skaltu halda þeim möguleika opnum að forritið hafi ekki fest hana enn: verk í biðröð, seinkaðri lestrarsýn eða eftirfarandi eintaki getur falið farsæl skrif um stund.
Gefðu henni skýrt annað augnaráð áður en þú dregur ályktun og skrifaðu niður tímann á báðum athugunum. Tvær athuganir með tuttugu sekúndna millibili eru mun veikari sönnun en tvær athuganir með tíu mínútna millibili.
Ákveddu hvort önnur sending sé örugg
Svarið fer eftir aðgerðinni, ekki þolinmæði þinni. HTTP aðgreinir aðferðir sem hægt er að endurtaka með sama fyrirhugaða áhrifum frá þeim sem ekki er hægt, og ráðleggur gegn sjálfvirkum endurtekningum af seinni gerðinni nema vitað sé að merkingarfræðin leyfi það. Að búa til athugasemd, leggja inn pöntun og senda greiðslu eru yfirleitt í seinni hópnum, þess vegna segir önnur vel heppnuð útlitsinnsmellur ekkert um þá fyrri.
Ef þú heldur við biðlarann skaltu nota endurtöku- eða sjálfstæðnismekanismann sem API-ið skjalfestir og tengja hann sömu rökréttu aðgerðinni í stað þess að búa til nýjan lykil fyrir hverja tilraun. Beiðniauðkenni sem notað er til rekjanleika er ekki lykill til að bæla tvítekningar nema þjónninn meðhöndli það þannig.
curl -i -X POST https://api.example.net/v1/orders \
-H "Idempotency-Key: 6f1c2a94-3b7e-4a10-9c22-5d0e8f7b1a63" \
-H "Content-Type: application/json" \
--data @order.jsonLykillinn hjálpar aðeins ef þjónustan geymir hann með aðgerðinni og skilar upphaflegu niðurstöðunni við endurtekningu. Prófaðu þá hegðun á sviðsettu endapunkti áður en þú treystir henni í framleiðslu.
Safnaðu sönnunum áður en þú ýtir á eitthvað aftur
Geymdu netfærsluna frekar en skjáskot af villunni. Beiðniaðferðin, slóðin, svarið eða tímannörkin og tíminn sem þetta gerðist eru það sem kerfisstjóri getur tengt skrám forritsins. Flyttu út eða afritaðu færsluna sem skipun aðeins ef þú fjarlægir þá vafrakökur, heimildarhausa og allt einkaeftni úr afritinu. Láttu þína eigin setu vera ósnerta og endurtaktu aldrei handtekna beiðni sem ber skilríki sem flýtileið.
Spyrðu eiganda þjónustunnar einnar nákvæmrar spurningar: tókst aðgerðin með þessu efni á þessum tíma, og er tilvísun til hennar? Þessi spurning hefur svar, en "braut síðan" hefur það ekki.
Tilgangur æfingarinnar er að staðfesta að aðgerðin hafi átt sér stað nákvæmlega einu sinni. Villuskilaboð sem þú getur lokað eru ekki það sama og færsla sem þú getur treyst, og þú þarft hina síðari áður en þú sendir eitthvað annað.