在同一個 API 端點 (Endpoint) 內,若要呼叫多個第三方 API 取得資料,有哪些比較好的做法呢?
呼叫第三方 API 的好方法
△ 單一 API 連接多個第三方 API。
可以參考以下的說明,寫出效能佳、具有一定程度的錯誤處理、前端 RD 又開心的 API。
1. 平行呼叫 API 請求
△ 循序、平行呼叫 API。
最大化效率,減少花費的時間。平行呼叫指的是用非同步 (asynchronous) 程式設計技術,例如:在 C# 中使用 Task.WhenAll
呼叫 API。
2. 限制 API 呼叫的數量
避免超過第三方 API 的配額 (Rate Limit),很多網站超過配額時會停止服務,或是收取額外費用;此外也能避免耗盡系統資源。
3. 處理錯誤
當呼叫第三方 API 可能會失敗時,不應影響整體服務。在此可以用 try-catch 處理錯誤並記錄、提供備用方案 (fallback)、返回預設或部分資料等作法。
4. 結果快取
如果 API 常常執行重複的第三方請求 (得到相同的回傳結果),加入快取可以減少處理時間、提升性能。
常見的做法是使用記憶體快取,如 Redis 或程式語言內部的資料結構 (HashTable 等),且根據 API 的更新頻率設定快取過期時間。
5. 資料合併與整理
設計適當的資料結構,在 API 端整理多個第三方 API 回傳的資料,減少前端的處理邏輯。