2010-03-30 2 views
9

Ich möchte Clients auf eine Obergrenze der Anzahl der Aufrufe an meine REST-APIs beschränken. Was sollte ich zurückgeben, um Kunden darüber zu informieren, dass sie gedrosselt wurden?So drosseln Sie Clients in einer REST-API

Amazon S3 gibt HTTP 503 mit einem Fehlercode SlowDown zurück, um Kunden zu informieren.

Was empfehlen Sie?

Antwort

9

Da RFC 2616 Dokumente Status 503 (Hervorhebung von mir):

Der Server ist derzeit nicht in der Lage zu die Anfrage behandeln aufgrund eines temporäre oder Wartung des Server zu überlasten. Die Implikation ist, dass diese eine temporäre Bedingung ist, die nach einiger Verzögerung gemildert wird. Wenn bekannt, die Länge der Verzögerung kann in einem Retry-After-Header angezeigt werden.

es scheint ein vernünftiger Ansatz, vor allem mit ein Retry-After-Header.

+0

Neben HTTP 503 können Sie auch HTTP 421 verwenden - Es gibt zu viele Verbindungen von Ihrer Internetadresse. (Aber mein persönlicher Favorit ist HTTP 418 - ich bin eine Teekanne. :-)) –

+0

Twitter ist ein nicht standardmäßiger HTTP 420 –

+1

RFC 2616 definiert keine dieser 4xx und sagt: "Die 4xx Klasse des Statuscodes ist für Fälle in bestimmt was der Client scheint sich geirrt zu haben ", was hier unpassend erscheint, wo der Client nichts falsch gemacht hat und es der _server_ ist, der überladen ist. –

Verwandte Themen