2012-12-07 65 views
0

我最近接管了一個項目,該項目涉及iOS應用程序連接到Restful Web服務以發送和檢索數據,而且我發現自己在服務器性能方面掙扎不已。AppEngine,REST和服務器請求

由於它是RESTful,可以從不同的URI端點訪問不同類型的數據。當用戶第一次登錄應用程序(忽略註冊部分)時,客戶端必須下載該用戶的所有數據。由於數據駐留在不同的端點上,客戶端向每個端點發出請求,從而導致對同一臺服務器的許多請求獲取所有數據。

我的問題......這是一個健全的體系結構?服務器最終會處理許多請求,以便爲單個用戶獲取數據。有一個單一的請求返回所有用戶的數據不是更謹慎嗎?服務器是appengine,我試圖更有效地使用它的免費配額。

感謝您的任何見解!

回答

1

硬不知道你的數據是如何組織的回答。

如果您通過這些6-7請求重新查詢相同的實體,這是一個壞主意。 如果您正在查詢不同的實體,那麼將它合併到一個查詢中確實沒有太大的區別。

有多個請求也可以讓你的用戶界面看到頁面更新結果進來時,「感覺」更有反應。對於單個請求,用戶將只是等待整個請求完成。

聽起來像是誰創建了這個項目,最初決定通過分離對不同類型對象的請求來決定使用REST API的清潔度。如果你想統一所有用戶相關的對象到一個請求中,它可能是一個非常「混亂」的架構。

雖然確實有一些開銷多少請求,它通常不是那麼大的交易。

0

有一個60秒的請求時間限制。根據單個「全部返回用戶數據」請求需要完成的工作,這可能會發揮作用。

檢查谷歌App Engine的文檔:
https://developers.google.com/appengine/docs/java/runtime#The_Request_Timer

+0

注意到它是用Python編寫的......我不希望它在60秒內接近任何地方,但想知道對於單個用戶的數據是否有一堆請求(6-7)是不好的做法。 – troy