我的問題是我提出了太多的API請求,如果可能的話我想減少這些請求。下面我將介紹的情況:如何在AngularJS應用程序中減少API請求
我有三個頁面,所有鏈接使用ngRoute
。像這樣:
Page A: Teams (list of teams)
URL: "/teams"
Page B: Team Details (list of players)
URL: "/teams/team-details"
Page C: Player Details (list of player stats)
URL: "/teams/team-details/player-details"
網頁A通過拉動隊的陣列從API非常容易地使用簡單的$resource.query()
請求,以及使用NG-重複通過它們來迭代填充。
網頁B是通過調用一個HTML模板並從單獨的API請求到/team-details
端點值填充特定字段中,從點擊的元素上的頁面A.
C頁取team_id
值(填充與頁面B一樣)從頁面B上的點擊播放器獲取player_id
,並使用該值調用/player-details
端點。這是又一個單獨的請求。
這一切工作正常,但你可以想像,一個用戶可以很容易超過一個小時內100個API請求架起來。
我有一個1000 /小時的請求限制,所以如果只有10個用戶在同一時間在線,它可能很容易超過我的限制,並關閉我的API。
如果我可以將API作爲一個單一的主端點來訪問,並將一組數據和子數據輸出到一個集合中,那麼這將解決我的問題,但是由於我需要請求單獨的端點,所以我看不到如何執行此操作。
有沒有更好的方法來解決這個問題?或者這些過度的API請求是唯一的方法嗎?
任何幫助,將不勝感激。
謝謝。每個端點對時間敏感程度不同。例如,'/ teams'端點可能每小時刷新一次。 '/ team-details'和'/ player-details'需要更頻繁。如您所建議的那樣,您如何防止在特定時間段內重複API請求? – Paulos3000
從客戶端100%鎖定它非常困難。但是我的方法是在本地成功請求(並緩存)存儲時間戳之後。我假設你使用'httpInjector'來調用你的API,這樣我就可以檢查你的時間戳了。如果時間戳是<你想要的,不要調用API並重定向以從本地緩存中獲取數據 – Harvey
或者在本地保存數據(緩存)時向數據添加時間戳。然後總是首先從緩存請求。如果數據爲空或時間戳太舊,則調用API進行刷新。希望有所幫助! – Harvey