Beispiele für HTTP-API-Ratenbegrenzungs-HTTP-Antwortheader

Antworten:

125

Hier sind einige Beispiele für HTTP-API-Ratenbegrenzungs-HTTP-Antwortheader. Entnommen aus vier gängigen REST-APIs: Github, Vimeo, Twitter und Imgur:

Begrenzung der Github-Rate http://developer.github.com/v3/#rate-limiting

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-RateLimit-Limit           | Request limit per hour                      |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Remaining       | The number of requests left for the time    |
|                             | window                                      |
+-----------------------------+---------------------------------------------+

Vimeo Rate Limiting http://developer.vimeo.com/guidelines/rate-limiting

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-RateLimit-Limit           | Request limit per day / per 5 minutes       |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Remaining       | The number of requests left for the time    |
|                             | window                                      |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Reset           | The remaining window before the rate limit  |
|                             | resets in UTC epoch seconds                 |
+-----------------------------+---------------------------------------------+

Begrenzung der Twitter-REST-API-Rate https://dev.twitter.com/docs/rate-limiting/1.1

Hinweis: Twitter verwendet Header mit ähnlichen Namen wie Vimeo, hat jedoch in jedem Namen einen anderen Bindestrich.

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-Rate-Limit-Limit          | The rate limit ceiling for that given       |
|                             | request                                     |
+-----------------------------+---------------------------------------------+
| X-Rate-Limit-Remaining      | The number of requests left for the         |
|                             | 15 minute window                            |
+-----------------------------+---------------------------------------------+
| X-Rate-Limit-Reset          | The remaining window before the rate limit  |
|                             | resets in UTC epoch seconds                 |
+-----------------------------+---------------------------------------------+

Imgur API Rate Limits http://api.imgur.com/

#=============================#=============================================#
# HTTP Header                 # Description                                 #
#=============================#=============================================#
| X-RateLimit-UserLimit       | Total credits that can be allocated         |
+-----------------------------+---------------------------------------------+
| X-RateLimit-UserRemaining   | Total credits available                     |
+-----------------------------+---------------------------------------------+
| X-RateLimit-UserReset       | Timestamp (unix epoch) for when the credits |
|                             | will be reset                               |
+-----------------------------+---------------------------------------------+
| X-RateLimit-ClientLimit     | Total credits that can be allocated for the |
|                             | application in a day                        |
+-----------------------------+---------------------------------------------+
| X-RateLimit-ClientRemaining | Total credits remaining for the application |
|                             | in a day                                    |
+-----------------------------+---------------------------------------------+
M8R-1jmw5r
quelle
11
Wenn Sie Ihre eigenen Ratenlimit-Header entwerfen, ist der Best Current Practice BCP178 eine relevante Ressource, die empfiehlt, das X-Präfix nicht mehr zu verwenden. Weitere Informationen finden Sie im Original-RFC / BCP. tools.ietf.org/html/bcp178
10gistic
Tolle Beispiele, ich habe ein Node.js-Paket erstellt, das mit dem requestPaket verwendet werden kann: github.com/webjay/x-rate
webjay
30

Vergessen Sie nicht, neben API-spezifischen Headern auch den bescheidenen Standard- Retry-AfterHeader

Server senden das Header-Feld "Retry-After", um anzugeben, wie lange der Benutzeragent warten soll, bevor er eine Folgeanforderung stellt. Der Wert dieses Felds kann entweder ein HTTP-Datum oder eine Anzahl von Sekunden sein, die verzögert werden sollen nachdem die Antwort empfangen wurde.

Der Standard enthält spezielle zusätzliche Empfehlungen, wenn er mit einem 503- oder 3xx-Statuscode verwendet wird:

Bei einer Antwort mit 503 (Dienst nicht verfügbar) gibt Retry-After an, wie lange der Dienst voraussichtlich nicht für den Client verfügbar sein wird. Beim Senden mit einer 3xx-Antwort (Umleitung) gibt Retry-After die Mindestzeit an, die der Benutzeragent warten muss, bevor er die umgeleitete Anforderung ausgibt.

Raedwald
quelle
1
Retry-Afterist zur Verwendung mit 503oder 30xAntworten tools.ietf.org/html/rfc7231#section-7.1.3
Russbear
3
@Russbear, aber nichts in diesem Abschnitt weist darauf hin, dass es nicht mit anderen Antwortcodes verwendet werden kann.
Raedwald
19
429 Zu viele Anforderungen: "Die Antwortdarstellungen sollten Details enthalten, die den Zustand erläutern, und KÖNNEN einen Wiederholungs-Header enthalten, der angibt, wie lange gewartet werden muss, bevor eine neue Anforderung gestellt wird." tools.ietf.org/html/rfc6585#section-4
MRA