API-Ratenbegrenzung
IBM® NS1 Connect® verwendet API-Ratenlimits, um die Anzahl der API-Anfragen pro Konto über einen bestimmten Zeitraum zu kontrollieren.
Auf diese Weise können Ressourcen gerecht verteilt und eine hohe Leistung für alle Plattformnutzer sichergestellt werden. Die Implementierung der API-Begrenzung ist flexibel und basiert auf dem Token-Bucket-Algorithmus, der eine bestimmte Anzahl von Anfragen innerhalb eines bestimmten Zeitraums zulässt. Verfügbare Token können so schnell verwendet werden, wie Ihre Automatisierung Anfragen senden kann. Die Plattform verwendet automatische Missbrauchsschwellen, um die Plattform zu schützen.
Token werden nur in einem Umfang aufgefüllt, der der Anzahl der pro Zeitraum zulässigen Anfragen geteilt durch die Anzahl der Sekunden in einem Zeitraum entspricht. Wenn ein Benutzer eine API-Anfrage an NS1 Connect stellt, enthält die Antwort zusätzliche Header, die genaue Informationen zur Begrenzung der API-Rate liefern, darunter:
- Die Anzahl der Token pro Ratenbegrenzungszeitraum für den Endpunkt
- Die Anzahl der Sekunden im Zeitraum der Ratenbegrenzung
- Die Anzahl der verbleibenden Token im aktuellen Zeitraum
Die Anzahl der Token (erlaubte Anfragen) pro Zeitraum kann je nach API-Endpunkt variieren. Zum Beispiel könnte eine einfache Anfrage an GET einem Benutzer maximal 900 Token (erlaubte Anfragen) mit einer Rate-Limit-Periode von 300 Sekunden gewähren. Der Benutzer kann das 900-Token-Limit so schnell wie nötig nutzen. Jede Anfrage verringert den verbleibenden Betrag um einen einzelnen Token. Die Auffüllrate für diese Route wäre 900/300 = 3 Token pro Sekunde. Dies ermöglicht es dem Benutzer, seine Anwendung so zu gestalten, dass er kontinuierlich Anfragen stellt, ohne das Limit zu überschreiten, oder mehrere Anfragen auf einmal zu stellen und auf die Auffüllung der Token zu warten.
Andere Wege, wie POST oder PUT, sind rechenintensiver und haben daher niedrigere Ratenbegrenzungen. POST anfragen könnten beispielsweise eine Ratenbegrenzung von etwa 300 Anfragen pro 300 Sekunden haben; daher würden Token nur mit einer Rate von einer Anfrage pro Sekunde auf dem Konto wiederhergestellt werden. Es ist am besten, Ihre Anwendungen strategisch so zu entwickeln, dass sie mit dieser Implementierung funktionieren und Unterbrechungen bei Änderungen vermieden werden.
-v in Ihren cURL -Befehl einfügen. Die folgende Anfrage enthält beispielsweise das Flag -v, um die Ratenbegrenzung für diesen Endpunkt in die Antwort aufzunehmen:curl -v -X GET -H "X-NSONE-Key: ${NSONE_API_KEY}' https://api.nsone.net/v1/monitoring/regionsBeispielantwort:
> GET /v1/monitoring/regions HTTP/1.1
< HTTP/1.1 200 OK
...
< x-ratelimit-by: customer
< x-ratelimit-limit: 100
< x-ratelimit-period: 1
< x-ratelimit-remaining: 99
curl -v -X GET -H "X-NSONE-Key: ${NSONE_API_KEY}' https://api.nsone.net/v1/monitoring/regions