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?