Kom i gang
Idempotens: prøv igjen uten å sende to ganger
Et nettverk mister svar. Med headeren
Idempotency-Key kan du sende det samme kallet på nytt uten å være redd for at kunden får to SMS-er eller to oppringinger.Slik virker det
Send en nøkkel du lager selv i headeren Idempotency-Key. Første gang utfører vi kallet og lagrer svaret under nøkkelen. Kommer den samme nøkkelen igjen, får du det lagrede svaret tilbake med headeren Idempotency-Replayed: true, og ingenting blir gjort på nytt.
Send en SMS
curl -X POST "https://api.telkit.no/v1/sms" \ -H "Authorization: Bearer $TELKIT_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: ordre-2041-hentemelding" \ -d '{ "profile": "nettbutikken", "to": "+4791234567", "text": "Hei! Pakken din er klar til henting."}'const response = await fetch("https://api.telkit.no/v1/sms", { method: "POST", headers: { Authorization: `Bearer ${process.env.TELKIT_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": "ordre-2041-hentemelding", }, body: JSON.stringify({ profile: "nettbutikken", to: "+4791234567", text: "Hei! Pakken din er klar til henting.", }),});const answer = await response.json();- Lag nøkkelen fra noe du allerede har: ordrenummeret og hva meldingen gjelder, for eksempel
ordre-2041-hentemelding. Da gir et nytt forsøk etter en omstart den samme nøkkelen. - Bruk en ny nøkkel for hver ny handling, også når teksten er den samme.
- Svaret er lagret i 24 timer.
Kall som krever nøkkelen
Kall som sender, ringer eller reserverer penger, avviser kallet uten nøkkel med idempotency_key_required. Det gjelder blant annet:
POST /v1/sms,POST /v1/email,POST /v1/lettersog kampanjenePOST /v1/callsog handlinger i en samtale som legger til en deltaker, leser opp, spør innringeren, flytter eller setter overPOST /v1/transcription/jobsogPOST /v1/transcription/sessions
API-referansen merker hver operasjon som tar nøkkelen. Der den er valgfri, anbefaler vi den likevel for alt som endrer noe.
Når nøkkelen blir avvist
| Kode | Betyr |
|---|---|
idempotency_key_reuse (422) | Nøkkelen er brukt før med et annet innhold. Lag en ny nøkkel for en ny handling. |
idempotency_in_flight (409) | Det første kallet med nøkkelen er ikke ferdig. Vent så lenge Retry-After sier, og prøv igjen med samme nøkkel. |
idempotency_unsupported (400) | Operasjonen tar ikke nøkkelen. Det gjelder POST /v1/api-keys, der hemmeligheten bare finnes i det første svaret. |