Je suis en train de mettre au point une spécification pour un service REST, qui inclura une partie de la capacité de limiter les utilisateurs à l’échelle du service et à des groupes de ressources ou sur des ressources individuelles. De même, les délais d'attente pour ceux-ci seraient configurables par ressource / groupe / service.
Je regarde juste à travers les spécifications HTTP 1.1 et j'essaie de décider comment je vais communiquer à un client qu'une demande ne sera pas satisfaite car ils ont atteint leur limite.
Initialement, je pensais que le code client 403 - Forbidden
était celui-là, mais ceci, de la spécification:
L'autorisation n'aidera pas et la demande NE DEVRAIT PAS être répétée
m'a ennuyé.
En fait, il semble que ce 503 - Service Unavailable
soit meilleur à utiliser - car cela permet la communication d’un temps de nouvelle tentative grâce à l’utilisation de l’en- Retry-After
tête.
Il est possible que, dans le futur, je puisse envisager de prendre en charge davantage de demandes d'achat via le commerce électronique (dans ce cas, ce serait bien si le code client 402 - Payment Required
avait été finalisé!) - mais je pense que cela pourrait également être inséré dans une réponse 503.
Lequel pensez-vous que je devrais utiliser? Ou y a-t-il un autre que je n'ai pas considéré?
la source
Dans une certaine mesure, vous êtes libre de faire ce que vous voulez avec les codes, mais je conviendrais que vous pouvez utiliser
503
, ou si vous le souhaitez402
, sans que personne ne puisse se plaindre que vous enfreignez les règles.Edit: Un puriste pourrait dire que vous devriez commencer par 503, puis basculer une fois qu'il est possible d'effectuer des paiements.
Un excellent ajout à cela dans les commentaires:
la source