Ich stelle eine Spezifikation für einen REST-Service zusammen, der zum Teil die Möglichkeit beinhaltet, Benutzer dienstweit und für Gruppen oder für einzelne Ressourcen zu drosseln. Ebenso können Zeitüberschreitungen für diese pro Ressource / Gruppe / Service konfiguriert werden.
Ich schaue mir nur die HTTP 1.1-Spezifikation an und versuche zu entscheiden, wie ich einem Client mitteilen möchte, dass eine Anforderung nicht erfüllt wird, weil er sein Limit erreicht hat.
Anfangs dachte ich, dass der Client-Code 403 - Forbidden
derjenige ist, aber dies aus der Spezifikation:
Die Autorisierung hilft nicht und die Anfrage SOLLTE NICHT wiederholt werden
störte mich.
Tatsächlich scheint 503 - Service Unavailable
es besser zu sein, dies zu verwenden, da es die Kommunikation einer Wiederholungszeit durch die Verwendung des Retry-After
Headers ermöglicht.
Es ist möglich, dass ich in Zukunft versuchen werde, mehr Anfragen über E-Commerce zu "kaufen" (in diesem Fall wäre es schön, wenn der Client-Code 402 - Payment Required
finalisiert worden wäre!) - aber ich denke, dass dies auch zu einer 503-Antwort werden könnte.
Was denkst du, sollte ich verwenden? Oder gibt es eine andere, an die ich nicht gedacht habe?
quelle
Bis zu einem gewissen Grad können Sie mit den Codes tun, was Sie möchten, aber ich stimme zu, dass Sie sie verwenden
503
können oder wenn Sie möchten402
, ohne dass sich jemand beschweren kann, dass Sie etwas kaputt machen.Bearbeiten: Ein Purist könnte sagen, dass Sie mit 503 beginnen und dann wechseln sollten, sobald es möglich ist, Zahlungen zu leisten.
Eine hervorragende Ergänzung dazu in den Kommentaren:
quelle