Oorspronkelijk gepubliceerd op 25 oktober 2019
Op basis van feedback van onze onlangs gepubliceerde Aankondiging van API Rate Logging Hier is een vervolgartikel met een reeks vragen die we vaak hebben ontvangen van klanten en partners. Houd er rekening mee dat naarmate we meer vragen en meer antwoorden ontvangen, we de inhoud van dit artikel zullen bijwerken.
Q. Op welk niveau wordt API Rate Limiting toegepast? Is het per instantie? Per organisatie? Per API-app?
Een. We zullen API-snelheidsbeperking toepassen op de API-app niveau. Voor de duidelijkheid: een API-app heeft betrekking op elke app die wordt gemaakt en onderhouden binnen de organisatie van Brightspace Tool voor uitbreidbaarheid beheren. Elke app voor het beheren van uitbreidbaarheid die op een Brightspace-site is ingeschakeld, krijgt een eigen silo met API-tegoeden toegewezen.
Q. Wat wordt de API-snelheidslimiet voor de bucketgrootte?
Een. De grootte van de snelheidslimiet van de emmer is 50.000 API-credits per minuut. Houd er rekening mee dat we het volgende opnemen in elke API Response Header:
X-Rate-Limit-Resterend - Deze waarde geeft een ontwikkelaar het resterende aantal credits dat beschikbaar is binnen het opgegeven tijdsbestek. OPMERKING: deze waarde is alleen relevant op sites waar API-snelheidsbeperking is ingeschakeld.
Q. Publiceert u de tokenkosten per API-route?
Een. Vanaf 3 december 2019 zijn de kosten van de routetoken vastgesteld op 10 credits per API-aanroep.
Naarmate we API-gebruikslogboeken monitoren en analyseren, kunnen we beter inzicht krijgen in de werkelijke serverkosten van onze API-routes. De uitkomst hiervan is dat we ons het recht willen voorbehouden om de kosten van API-routetokens te wijzigen. We verwachten volledig dat de kosten van API-routes zullen veranderen vóór de volledige productlancering in mei 2020.
We nemen het volgende op in elke API Response Header:
X-Request-Kosten - deze waarde informeert de ontwikkelaar over het aantal credits dat de huidige API-route kost. Op dit moment is deze waarde altijd 10.
Q. Is er een manier om te weten of een van mijn apps de API-snelheidslimiet (een 429-bericht) heeft overschreden?
A. Ja. Deze gegevens zullen beschikbaar zijn via de Brightspace Systeem logboek. Deze gegevens worden bewaard in het systeemlogboek op basis van de huidige regels voor het bewaren van gegevens. Zoeken naar "Route bereikt een snelheidslimiet" om gebeurtenissen met een snelheidslimiet te vinden (429 berichten).
Q. Is er een manier om te weten of een van mijn apps een API-snelheidslogboek heeft geactiveerd?
A. Ja. Vanaf onze productrelease van december zullen deze gegevens beschikbaar zijn via de Brightspace Systeem logboek. Deze gegevens worden bewaard in het systeemlogboek op basis van de huidige regels voor het bewaren van gegevens. Zoek naar 'Route bereikt een logboeklimiet' om logboekrecords voor snelheidslimieten te vinden. Voor systemen waarop API-snelheidsbeperking is ingeschakeld, zoekt u in uw systeemlogboek naar 'Route bereikt een overschrijdingslimiet' om gebeurtenissen met snelheidslimieten (429-fouten) te identificeren.
Q. Omvat API-snelheidsbeperking ook aanroepen naar LTI-services?
A. Ja. Voor alle LTI Advantage-serviceaanroepen geldt dezelfde snelheidslimiet als voor onze Brightspace Learning Framework-API's.
Q. Zijn er indicatoren beschikbaar om een ontwikkelaar te informeren dat ze bijna hun API Rate Limit Bucket hebben opgebruikt?
A. Ja. De X-Rate-Limit-Resterend VALUE informeert een ontwikkelaar over hoeveel credits ze nog moeten gebruiken binnen het huidige tijdsbestek van de minuut.
Q. Is er een manier om te weten hoeveel tijd er nog over is voordat mijn API-tegoedbucket is bijgevuld?
A. Ja. We nemen het volgende veld op in onze responskop:
X-Rate-Limit-Reset - Deze waarde geeft een ontwikkelaar de hoeveelheid tijd, in seconden, aan totdat de bucket opnieuw wordt ingesteld.
Q. Ik heb net een 429 bericht ontvangen. Hoe weet ik hoe lang ik moet wachten tot mijn API-tegoed is bijgevuld?
Een. Voor 429 reacties nemen we een industriestandaard responswaarde in de header op:
Opnieuw proberen-Na - Deze waarde geeft een ontwikkelaar de hoeveelheid tijd, in seconden, aan totdat de bucket opnieuw wordt ingesteld.
Q. Zal het mogelijk zijn om extra credits of een grotere kredietbucket aan te schaffen?
A. Nee. Wij zijn van mening dat het aantal beschikbare credits per minuut een acceptabel gebruiksbedrag weerspiegelt.
Q. Ik ben bang dat mijn app de opgegeven limieten zal overschrijden en dat mijn code niet klaar is om 429 berichten te verwerken. Wat kan ik doen?
Een. Met onze eerste aankondiging in oktober 2019 zijn we bij D2L van mening dat we klanten een aanzienlijke hoeveelheid voorbereidingstijd hebben geboden. We moedigen alle klanten aan om met uw D2L TAM en/of CSM te werken om zich voor te bereiden op deze verandering. Wij van D2L gaan graag met u in gesprek over hoe API Rate Limiting van invloed kan zijn op de bestaande code die u hebt geschreven.
Ons doel voor dit initiatief is om de prestaties en stabiliteit van uw Brightspace-investering te behouden. We hebben de oplossing zo gebouwd dat we vrijstellingen kunnen beheren waar nodig, maar we willen het toestaan van deze uitzonderingen zoveel mogelijk vermijden. Als u denkt dat u een vrijstelling nodig heeft, neem dan contact op met uw D2L, CSM en/of TAM, zodat we samen kunnen werken om te beslissen over een wederzijds aanvaardbare weg vooruit.
Q. Kosten mislukte API-aanroepen (bijv. 400, 403, 404) mijn app-tegoed?
A. Ja. Logica voor snelheidsbeperking vindt plaats voordat we de API-aanroep verwerken. Op het moment dat we de oproep ontvangen, weten we niet of deze succesvol zal zijn of niet.