Estou montando uma especificação para um serviço REST, parte do qual incorporará a capacidade de limitar os usuários em todo o serviço e em grupos de recursos ou em recursos individuais. Igualmente, os tempos limites para estes seriam configuráveis por recurso / grupo / serviço.
Estou apenas olhando as especificações do HTTP 1.1 e tentando decidir como vou me comunicar com um cliente que uma solicitação não será atendida porque eles atingiram seu limite.
Inicialmente, imaginei que o código do cliente 403 - Forbiddenera o único, mas este, da especificação:
A autorização não ajudará e o pedido NÃO DEVE ser repetido
me incomodou.
Na verdade, parece que 503 - Service Unavailableé melhor usar - já que permite a comunicação de um tempo de nova tentativa através do uso do Retry-Aftercabeçalho.
É possível que no futuro eu possa procurar 'comprar' mais solicitações via eCommerce (nesse caso, seria bom se o código do cliente 402 - Payment Requiredtivesse sido finalizado!) - mas acho que isso também poderia ser espremido em uma resposta 503 também.
Qual você acha que devo usar? Ou existe outro que eu não considerei?
