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:

Hinweis : Es gibt automatische Missbrauchsschwellen, um die Plattform zu schützen, und eine harte Ratenbegrenzung durch diese Mechanismen ist möglich, wenn die Plattform übermäßige Anfragen mit einer Rate beobachtet, die als missbräuchlich angesehen wird.
  • 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.

Aktuelle Daten zur Ratenbegrenzung für alle Anfragen finden Sie in jeder API-Antwort, indem Sie das Flag -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/regions

Beispielantwort:

> 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