Sto mettendo insieme una specifica per un servizio REST, una parte della quale includerà la capacità di limitare gli utenti a livello di servizio e su gruppi di risorse singole o individuali. Allo stesso modo, i timeout per questi sarebbero configurabili per risorsa / gruppo / servizio.
Sto solo esaminando la specifica HTTP 1.1 e sto cercando di decidere come comunicare a un cliente che una richiesta non verrà soddisfatta perché ha raggiunto il limite.
Inizialmente ho capito che il codice cliente 403 - Forbidden
era quello, ma questo, dalla specifica:
Authorization will not help and the request SHOULD NOT be repeated
mi ha infastidito.
In realtà sembra che 503 - Service Unavailable
sia uno migliore da usare, poiché consente la comunicazione di un tempo di ripetizione attraverso l'uso dell'intestazione Retry-After
.
È possibile che in futuro potrei cercare di supportare "l'acquisto" di più richieste tramite eCommerce (nel qual caso sarebbe bello se il codice cliente 402 - Payment Required
fosse stato finalizzato!) - ma immagino che questo potrebbe essere ugualmente schiacciato in una risposta 503.
Quale pensi che dovrei usare? O c'è un altro che non ho considerato?