We bieden een platform waarmee onze klanten Timewax kunnen uitbreiden met geweldige integratiediensten. Naarmate het gebruik van de API groeit, moeten we stappen ondernemen om de betrouwbaarheid en goede prestaties van het platform te waarborgen, zodat onze klanten het efficiënt kunnen gebruiken.
We passen limieten toe op API-requests om de belasting van de API te helpen beheersen. Dit is gebaseerd op ons fair use beleid volgens artikel 21.1 van onze algemene voorwaarden. We zullen maximaal 10 requests per seconde per klantomgeving toestaan.
Als een integratie de limiet overschrijdt, worden eventuele aanvullende requests in dezelfde seconde afgewezen met een HTTP 429-antwoord (Too Many Requests).
Tips en trucs om te voldoen aan de API limieten
We hebben enkele integraties gevolgd en ontdekten dat de API niet altijd optimaal wordt gebruikt. Bijvoorbeeld continu pollen, geen filters toepassen en een request oneindig herhalen wanneer er een fout optreedt. Hier zijn enkele tips en trucs die kunnen helpen:
- Log alle API-aanroepen die je doet in de Timewax API. Je kunt dan het verkeer van jullie integratie volgen en de resultaten vergelijken met die van ons.
- Breid je integratie uit met een teller voor het aantal requests dat in de afgelopen 60 seconden is verzonden, zodat je de stroom van requests kunt controleren en kunt voorkomen dat je de limiet bereikt.
- Vraag niet voor elke request een token aan. Tokens zijn 60 minuten geldig.
- Cache API-antwoorden als je veel hergebruik verwacht. Probeer geen API-requests te starten bij elke pagina die wordt geladen, maar laad het antwoord in een lokale cache.
- Is het nodig om alle gegevens op te halen? Of is het mogelijk om alleen gewijzigde gegevens op te halen?
- Valideer het foutproces. Als de Timewax API een fout retourneert, zou de integratie de request niet oneindig opnieuw moeten proberen. Je kunt een schema toepassen om nieuwe pogingen met exponentieel groeiende intervallen uit te voeren en met een maximum aantal pogingen. Bijvoorbeeld 5 seconden wachten, dan 10 seconden, 20 seconden, 40 seconden, 80 seconden, enzovoort en stoppen bij 10 pogingen.
- Als je het aantal requests dat door je code wordt verzonden wilt beheren, kun je een bibliotheek gebruiken om je requests te vertragen. Je kunt er een vinden voor je eigen framework en programmeertaal. Enkele voorbeelden zijn Bottleneck voor Node.js, Sidekiq-throttled voor Ruby, Tenacity voor Python (met ook een zeer goede handleiding) en voor Java is er een verscheidenheid aan opties, waaronder de RateLimiter uit de Google Guava-bibliotheek.
Hoewel de huidige API limieten niet kunnen worden aangepast, kunnen we natuurlijk adviseren over het efficiënter maken van je integratie. Neem dan contact op met onze support desk.