Guide för kvoter och anropsbegränsningar
FedEx får många tusen API-begäranden varje dag. Vi använder oss av tre begränsande mekanismer för att hantera den stora volymen. Vi använder oss av kvoter, anropsbegränsningar och tröskelvärden för att effektivt kunna fördela FedEx-resurserna.
Kvoter fastställs både per organisation och per API-projekt.
Kvoter per organisation
Transaktionskvoten är det maximala antalet API-begäranden som får skickas av en organisation under en dag. Det innebär att API-konsumenter bör överväga det totala antalet API-begäranden som initieras för alla projekt inom en organisation. Varje begäran räknas lika, oavsett mängden data som returneras i FedEx API-svar.
Exempel: En organisation har en kvot på 500 000 API-begäranden per dag. Om en organisation uppnår 500 000 skickade begäranden inom de första timmarna av ett dygn har organisationen nått sin dagliga kvot. Under resten av dagen kommer varje ny begäran att resultera i felkoden ”429 – Too many requests – Daglig transaktionskvot har överskridits. Försök igen efter kl. 24.00 GMT.”.
Kvot per API-projekt
Den här kvoten tillämpas på två olika nivåer: projekt och funktion.
Vad menar vi med funktioner?
Varje API grupperas efter tillhandahållen funktion. Varje funktionsgrupp har en eller flera slutpunkter. Funktionen API-spårning har till exempel 6 API-slutpunkter, men funktionen adressvalidering har endast 1 API-slutpunkt.
Spårningsfunktionens standardkvot för funktioner per projekt (PCPP) är 100 000 begäranden per dag. Om trafiken från ett projekt inom en organisation till någon av spårningsfunktionens 6 slutpunkter överskrider den gränsen visas felmeddelandet ”429 – Too many requests” under resten av dagen. Det här tillämpas på alla efterföljande spårningsbegäranden och för alla 6 slutpunkter.
Exempel: Om ett projekt har en gräns på 100 000 för spårningsfunktionen (med 6 slutpunkter) inkluderas transaktionerna för alla 6 slutpunkter. Om ett projekt överskrider den gränsen visas felkoden ”429 – Too many requests – Daglig transaktionskvot har överskridits.” under resten av dagen fram till kl 24.00 GMT.
Anropsbegränsningar
Varje projekt har en anropsbegränsning på 1 400 transaktioner per 10 sekunder. Begränsningar tillämpas om transaktioner överskrider den gränsen under varje tidsram på 10 sekunder.
Om den här gränsen nås under de första sekunderna kommer alla transaktioner som skickas under återstående sekunder av tidsramen på 10 sekunder att begränsas. Under begränsningsperioden kommer felkoden ”429 – Too many requests” att returneras.
Om FedEx tar emot 1 400 förfrågningar under de första 2 sekunderna kommer efterföljande transaktioner att begränsas under de kommande 8 sekunderna, och felmeddelandet ”429 – Too many requests – Vi har fått in för många förfrågningar på för kort tid. Vänta lite och försök igen.” kommer att returneras.
Efter att 10 sekunder har passerat hävs begränsningarna och en annan räknare kommer att räkna antalet förfrågningar under de kommande 10 sekunderna.
Tröskelvärden
Tröskelvärden tillämpas på IP-adressnivå för att göra auktoriseringsprocessen för FedEx API:er mer motståndskraftig. Den här mekanismen är endast tillämplig på tjänsten för generering av Auth-token. Det finns två typer av tröskelvärden:
- Burst-tröskelvärde: 3 träffar per sekund, kontinuerligt, under ett intervall på 5 sekunder
- Genomsnittligt tröskelvärde: 1 träff per sekund, kontinuerligt, under ett intervall på 2 minuter
- När en offentlig IP-adress bryter mot någon av tröskelgränserna kommer den att straffas under 10 minuter. Alla ytterligare förfrågningar under den här tidsramen kommer att generera statuskoden ”403 Forbidden”.
- Om API-konsumenter fortsätter att överträda någon tröskelgräns under strafftiden kommer den att förlängas. API-användare kan avsluta sin strafftid genom att inte överträda tröskelgränsen under de kommande 10 minuterna.
- Mekanismer för tröskelvärdet baseras på en användares offentliga IP-adress. Om en användare ställer in 10 virtuella maskininstanser bakom en offentlig IP-adress kommer alla förfrågningar från den IP-adressen att räknas mot tröskelgränsen.
Hantering av trafik
Var och en av dessa tre mekanismer berör en särskild aspekt av hanteringen av trafik:
Kvoter som tillämpas på organisationsnivå: Den kombinerade trafiken som genereras av alla API:er inom en organisation kommer att omfattas av den här transaktionskvoten.
Kvoter som tillämpas på projektnivå: Den kombinerade trafiken som genereras för en API-funktion inom ett projekt omfattas av den här transaktionskvoten.
Anropsbegränsningar som tillämpas på projektnivå: Den kombinerade trafiken som genereras av alla API:er inom ett projekt kommer att omfattas av den här anropsbegränsningen.
Tröskelvärden tillämpas på IP-adressnivå.
Obs! FedEx kan komma att sänka gränserna för någon av de ovan nämnda begränsningsmekanismerna för att förhindra missbruk och överanvändning. FedEx förbehåller sig rätten att ändra fördelningen utan föregående meddelande för att upprätthålla rättvis åtkomst bland API-konsumenter och fördela FedEx-resurser effektivt.
Vanliga frågor
Räknas samtliga API-transaktioner från en organisations olika projekt mot kvoten?
Kvoten tillämpas på organisationsnivå. Under en organisation kan du ha ett eller flera projekt och under varje projekt kan du ha ett eller flera API:er. Det innebär att den kombinerade trafiken som genereras av alla API:er från olika projekt – alla under samma organisation – räknas mot den dagliga kvoten.
Om samma 429-fel returneras för både en kvotöverträdelse och en överträdelse av anropsbegränsningen, hur kan jag identifiera vilken typ av överträdelse jag har gjort?
Du kan identifiera överträdelsen genom att läsa felmeddelandet.
ÖVERTRÄDELSE | FELMEDDELANDE |
---|---|
Kvoter per organisation | Too many requests – Daglig transaktionskvot har överskridits. Försök igen efter kl. 24.00 GMT. |
Kvoter per API-projekt | Too many requests – Daglig kvot per projekt har överskridits. Försök igen efter kl. 24.00 GMT. |
Anropsbegränsning | Too many requests: Tröskelvärdet för anropsbegränsning har överskridits. Försök igen efter 10 sekunder. |
Vad är lösningen för en överträdelse av tröskelgränsen?
En OAuth-token är giltig under en timme. Vi föreslår att API-konsumenter använder sin token under hela timmen och sedan begär en ny token efter att den föregående har upphört att gälla.
Vad är ett exempel på när tröskelgränsen passeras?
Både 5 sekunder och 2 minuter är observationsfönster för burst-tröskelvärdet respektive det genomsnittliga tröskelvärdet. Om en IP-adress överskrider något av tröskelvärdena under något av observationsfönsterna kommer straffet att införas.
Exempel: Om en IP-adress har 3 träffar per sekund under 2 sekunder, men träffrekvensen sedan sjunker till under 3 träffar per sekund, har burst-tröskelvärdet inte överskridits. Om en IP-adress däremot har 3 träffar per sekund kontinuerligt under 5 sekunder (följt av 15 träffar under 5 sekunder) har burst-tröskelvärdet på 14 träffar under 5 sekunder överskridits.