Ripetibilità delle richieste

Si applica a: ACS Email (API di invio Email), ACS Rooms

Le API POST non sono idempotenti per definizione. Per renderli comportamenti in modo idempotente, è possibile supportare richieste ripetibili in base alla specifica OASIS Repeatable Requests Version 1.0 . Per supportare questa operazione, i clienti devono specificare due intestazioni obbligatorie nella richiesta POST:

  • Ripetibilità-Request-ID
  • Ripetibilità-First-Sent

Intestazione Request-Id di ripetibilità

Il valore di questa intestazione identifica la richiesta in modo univoco con un GUID.

Intestazione ripetibilità-First-Sent

Il valore di questa intestazione rappresenta il timestamp quando la richiesta originale è stata inviata per la prima volta. Il valore deve essere specificato in formato UTC in formato FMI-fixdate. Vengono rilevate solo le richieste per una durata specificata (attualmente, la durata tracciata è di 5 minuti). Tutte le richieste con un valore prima di essere considerate potenzialmente non sicure per l'esecuzione e restituiranno un errore 412 (non riuscito).

Ripetibilità negli SDK del servizio Azure Kubernetes

Le intestazioni di ripetibilità vengono generate automaticamente, aggiunte e inviate all'API quando si usa una delle librerie di ACS SDK.

Codici di risposta delle richieste ripetibili

Le informazioni dettagliate sui vari codici di stato per le richieste ripetibili sono incluse nella tabella seguente.

Ripetibilità-Request-ID Ripetibilità-First-Sent Risultato della ripetibilità Codice di stato della risposta
GUID valido Formato non valido Rifiutato 400
Formato non valido Data valida Rifiutato 400
Formato non valido Formato non valido Rifiutato 400
Valido Durata del rilevamento esterno Rifiutato 412 (Precondizione non riuscita)
Richiesta nuova/non ricreata valida Durata del rilevamento Accettato Codice di stato dall'esecuzione normale
Richiesta ripetuta valida All'interno della durata del rilevamento, ma non corrisponde alla richiesta precedente Rifiutato 400
Richiesta ripetuta valida All'interno della durata del rilevamento, corrisponde alla richiesta precedente Accettato Nell'API Invia Email:
- Se la richiesta originale è ancora in corso: 409
- Se il codice di stato della richiesta originale era 2xx o 4xx, restituire il codice di stato.
- Se il codice di stato della richiesta originale era 5xx, restituire il codice di stato da eseguire nuovamente della richiesta.

Risoluzione dei problemi

Se è stata inviata una richiesta con un timestamp inviato prima entro gli ultimi 5 minuti, ma si riceve comunque un errore 412 (Precondizione non riuscita) con il messaggio "L'intestazione inviata per la prima volta inviata non era in 5 minuti". Assicurarsi di verificare che l'orologio del computer client sia sincronizzato con il server di ora.

Vedere anche

Per altre informazioni su Servizi di comunicazione di Azure, è anche possibile esaminare le altre origini della documentazione: