配額與費率限制指南
FedEx 每天會收到數以千計的應用程式開發介面 (API) 請求。我們使用三種節流機制來管理如此龐大的數量。我們設有配額、速度限制及門檻,以有效率地分配 FedEx 資源。
每個組織和每個應用程式開發介面 (API) 專案均有定義的配額。
每個組織的配額
交易配額為一天內允許來自組織之應用程式開發介面 (API) 請求的數量上限。這表示,應用程式開發介面 (API) 消費者應考量單一組織內所有專案送出的應用程式開發介面 (API) 請求總數。無論 FedEx 應用程式開發介面 (API) 回應傳回的資料量如何,每個請求皆同等重要。
範例:組織每日的配額為 500,000 個應用程式開發介面 (API) 請求。如果組織在當日的前幾小個時內達到 500,000 個送出請求,將會達到其配額上限。在當日其餘時間,系統將針對每個請求傳回錯誤代碼「429 – 過多請求 – 已超過每日交易配額。請於上午 12:00 GMT 後重試」,直到隔日為止。
每個應用程式開發介面 (API) 專案的配額
此配額適用於兩個不同的層級:專案和功能。
我們所指的功能是什麼?
每個應用程式開發介面 (API) 均依其提供的功能分組。每個功能群組都是由一或多個端點組成的套件。例如,查詢應用程式開發介面 (API) 功能具有 6 個應用程式開發介面 (API) 端點,而地址驗證功能只有 1 個應用程式開發介面 (API) 端點。
查詢功能的每專案每功能 (PCPP) 預設配額限制為每天 100,000 個請求。這表示當組織內任何專案到查詢功能下 6 個端點的任一端點流量超過此限制時,我們將會傳送「429『過多請求』」錯誤給您,直到當天結束為止。此限制適用於 6 個端點中任一端點的所有後續查詢請求。
範例:如果專案的每個查詢功能 (含 6 個端點) 具有 100,000 個的限制,則全部 6 個端點的交易總數均會計入 100,000 個的限制中。如果您的專案超過該限制,則針對後續查詢交易,您將在當日其餘時間收到錯誤代碼「429 – 過多請求 – 已超過每日交易配額」,直到隔日上午 12:00 GMT 為止。
費率限制
每個專案的交易速度限制為每 10 秒 1,400 筆交易。如果每 10 秒間隔內的交易數超過此限制,便會套用節流限制。
如果您已在前幾秒內達到限制,則在該 10 秒時間的剩餘秒數內傳入的交易均會遭到節流。在此節流期間,系統將會傳回錯誤代碼並顯示「429 – 過多請求」。
如果 FedEx 在前 2 秒內收到 1,400 筆請求,則在接下來 8 秒期間的任何後續交易皆會遭到節流,且系統會傳回錯誤訊息「429 – 過多請求 – 我們在短時間內收到過多請求。請稍後再試一次」。
10 秒結束後便會解除節流限制,並開始新的計數,記錄接下來 10 秒內的請求數。
門檻
門檻套用於 IP 位址層級,讓 FedEx 應用程式開發介面 (API) 授權程序得以復原。此機制僅適用於 Auth 權杖產生服務。以下為兩種類型的門檻:
- 高載門檻:5 秒內連續每秒點擊次數為 3 次
- 平均門檻:2 秒內連續每秒點擊次數為 1 次
- 當公用 IP 位址違反以上任何門檻限制時,該 IP 位址將遭受懲罰 10 分鐘,因此,在此 10 分鐘時間內的所有進一步請求皆會收到「403 禁止」狀態代碼。
- 如果應用程式開發介面 (API) 消費者在此懲罰時間內仍持續違反任何門檻限制,懲罰時間將會延長。只要應用程式開發介面 (API) 使用者在接下來 10 分鐘內未違反門檻限制,即可結束其懲罰時間。
- 門檻機制係以使用者的公用 IP 位址為基礎。如果使用者在單一公用 IP 後設定 10 個虛擬機器執行個體,則由該 IP 位址送出的所有請求都將計入門檻限制。
流量管理
以下三種機制分別處理不同層面的流量管理:
配額適用於組織層級:組織內所有應用程式開發介面 (API) 產生的結合流量會受到此交易配額的約束。
配額適用於專案層級:專案內為單一應用程式開發介面 (API) 功能產生的結合流量會受到此交易配額的約束。
速度限制適用於專案層級:專案內所有應用程式開發介面 (API) 產生的結合流量將受到此速度限制的約束。
門檻套用於 IP 位址層級。
備註:FedEx 可能會標記上述節流機制的限制,以避免誤用、過度使用及濫用。FedEx 保留變更配置的權利,無須先行通知,以維護應用程式開發介面 (API) 消費者之間的平等存取權,以及有效率地分配 FedEx 資源。
常見問答集
同一個組織來自不同專案的所有應用程式開發介面 (API) 交易是否均計入配額?
配額適用於組織層級。在單一組織之下,您可以有一或多個專案;而在每個專案下,可以有一或多個應用程式開發介面 (API)。因此,來自組織下不同專案之所有應用程式開發介面 (API) 產生的組合流量均會計入每日配額。
如果系統同時針對配額違規和費率限制違規傳回相同的 429 錯誤,我該如何辨別造成的違規類型?
您可以透過閱讀錯誤訊息辨別違規類型。
違規 | 錯誤訊息 |
---|---|
每個組織的配額 | 過多請求:已超過每日交易配額。請於上午 12:00 GMT 後重試。 |
每個應用程式開發介面 (API) 專案的配額 | 過多請求:已超過每個專案的每日配額。請於上午 12:00 GMT 後重試。 |
速度限制 | 過多請求:已超過速度限制門檻。請於 10 秒後重試。 |
違反門檻限制的解決方案為何?
OAuth 權杖的有效時間為一小時。建議 API 消費者在該時數全程使用此權杖,且僅可在前一個權杖到期後請求新的權杖。
超過門檻限制的範例為何?
針對高載門檻和平均門檻,系統分別提供 5 秒和 2 分鐘的觀察時間。在其中任一時段內,如果某 IP 位址違反任一門檻限制,就會受到門檻懲罰。
範例:如果某個 IP 位址在 2 秒內的每秒點擊次數為 3 次,且後續點擊速率低於每秒 3 次,則未違反高載門檻限制。但是,如果某個 IP 位址在連續 5 秒內的每秒點擊次數為 3 次,且後續 5 秒內的點擊次數為 15 次,則已違反 5 秒內 14 次點擊的高載門檻限制。