Einer der zusätzlichen HTTP- Statuscodes ( RFC6585 ) ist
Wo finde ich Beispiele für HTTP / REST-API-ratenbegrenzende HTTP-Antwortheader, die für diesen HTTP-Antwortstatus nützlich sind?
Einer der zusätzlichen HTTP- Statuscodes ( RFC6585 ) ist
Wo finde ich Beispiele für HTTP / REST-API-ratenbegrenzende HTTP-Antwortheader, die für diesen HTTP-Antwortstatus nützlich sind?
Antworten:
Hier sind einige Beispiele für HTTP-API-Ratenbegrenzungs-HTTP-Antwortheader. Entnommen aus vier gängigen REST-APIs: Github, Vimeo, Twitter und Imgur:
#=============================#=============================================#
# HTTP Header # Description #
#=============================#=============================================#
| X-RateLimit-Limit | Request limit per hour |
+-----------------------------+---------------------------------------------+
| X-RateLimit-Remaining | The number of requests left for the time |
| | window |
+-----------------------------+---------------------------------------------+
#=============================#=============================================#
# 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 |
+-----------------------------+---------------------------------------------+
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 |
+-----------------------------+---------------------------------------------+
#=============================#=============================================#
# 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 |
+-----------------------------+---------------------------------------------+
request
Paket verwendet werden kann: github.com/webjay/x-rate
Vergessen Sie nicht, neben API-spezifischen Headern auch den bescheidenen Standard- Retry-After
Header
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.
response.headers["x-ratelimit-limit"]