Sto mettendo insieme una specifica per un servizio REST, parte del quale incorporerà la capacità di limitare gli utenti a livello di servizio e su gruppi di o su singole risorse. Allo stesso modo, i timeout per questi sarebbero configurabili per risorsa / gruppo / servizio.
Sto solo esaminando le specifiche HTTP 1.1 e provando a decidere come comunicherò a un client che una richiesta non sarà soddisfatta perché hanno raggiunto il loro limite.
Inizialmente ho pensato che il codice client 403 - Forbidden
fosse quello, ma questo, dalle specifiche:
L'autorizzazione non aiuterà e la richiesta NON DOVREBBE essere ripetuta
mi ha infastidito.
In realtà sembra che 503 - Service Unavailable
sia migliore da usare, poiché consente la comunicazione di un tempo di ripetizione tramite l'uso Retry-After
dell'intestazione.
È possibile che in futuro potrei cercare di supportare "l'acquisto" di più richieste tramite eCommerce (nel qual caso sarebbe bello se il codice client 402 - Payment Required
fosse stato finalizzato!) - ma immagino che anche questo potrebbe essere compresso in una risposta 503.
Quale pensi che dovrei usare? O ce n'è un altro che non ho preso in considerazione?