假設您有一個Recipe Manager應用程序,您正在使用Web Api項目進行構建。你在JSON中發送配方列表及其配料名稱嗎?或者您是否發送食譜,配料名稱和配料詳情?確定SPA的初始有效載荷應該多大的過程是什麼?如何決定在單頁面應用程序中向用戶推送多少數據?
回答
這些都是多少發送到客戶端在初始頁面的決定性因素:將顯示爲第一頁
- 數據
- 數據所需的編報規則(可能不會顯示出來,而是使用)
上的配方頁面將顯示菜譜清單,我會得到的配方和一些顯示的關鍵因素(如食譜名稱,菜餚和其他關鍵信息)可以顯示在列表中。足以讓用戶決定選擇什麼。然後,當用戶進入食譜,然後去獲得1食譜的細節。
一般規則是得到你用戶將幾乎肯定需要預先。然後根據他們的要求獲取其他數據。
確定要發送多少數據的過程取決於您希望爲用戶提供的體驗 - 但是這很簡單。如果我的經驗要求我隨時顯示所有配方並附上簡要說明,然後讓他們深入研究配方以獲取更多信息,那麼我只需要即可發送足夠的信息以生成顯示並進一步瀏覽該實體。
如果在導航到配方後需要顯示配料名稱和量度,那麼請發送該配料名稱和量度,然後發送該配料和足夠的信息以進一步導航到任何單一配料。
而且你可以看到它只是繼續下去。
這也感覺更寧靜。 /食譜給你你的食譜列表(標題,簡短說明圖片)和一個指向實際配方的說法/食譜/超美味肉丸,然後有成分,方法等 – 2013-03-05 11:47:27
這取決於您的應用程序只是一個支持您的網頁的簡單HTTP API,或者您的目標更類似於平臺即服務。採用SPA的一個驅動因素是,它使瀏覽器成爲另一個客戶端,就像iOS或Android應用程序或第三方一樣。
如果您想要支持多個客戶端,那麼您可能希望圍繞您要公開的資源設計API,以便您可以使用GET/POST/PUT等統一接口來對付資源。這意味着你更有可能不以客戶特定的風格進行編碼,並且你的API可以被廣泛的客戶使用。
資源是任何你想擁有自己的URN。
我認爲在這種情況下,您可能需要一個食譜書資源,該資源鏈接到單個食譜資源,該資源可能包含該食譜所需的所有信息。如果您更深入地瞭解某種成分所含的成分,並且他們擁有自己的資源,成分只會成爲一種單獨的資源。
在Huddle,我們使用文檔驅動設計方法。這就是我們爲我們的API編寫文檔,以便我們能夠理解API的可用性。您可以測量WTF中的API質量。http://code.google.com/p/huddle-apis/
現在這個邏輯分區在性能方面可能不是最佳的。您在這裏處理經典的權衡(最終體系結構都是關於平衡設計權衡),在這裏您的API的可用性和API的性能之間進行權衡。通常情況下,除非您知道這是一個問題,否則不要贊成性能,因爲您會在可用性或可維護性方面爲早期優化付出代價。
感謝您的詳細解答伊恩。問題 - 在這種情況下,PaaS只是一種類固醇的API?一個專門爲多客戶端(網頁/手機/平板電腦/等)消費的網頁API? – RobVious 2013-03-05 18:42:44
是的,PaaS可以被看作是類固醇的API,也就是說你正在建設的目標是多個(你可能不知道)客戶。 – 2013-03-18 15:09:24
另一種可能性是實現WebAPI的OData查詢支持。 http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api
這樣,您的客戶可以執行自己的查詢,只返回他們需要的數據。
- 1. 如何顯示有多少用戶在推送頁面上
- 2. 如何定期推送數據到用戶界面在php
- 3. 單頁應用程序或多頁面應用程序?
- 4. 黑莓應用程序如何向BIS和BES用戶發送推送通知?
- 5. 單個數據庫和許多用戶桌面應用程序
- 6. 在單頁面應用程序中保留表單數據值
- 7. 如何將用戶重定向到Facebook應用程序中的登錄頁面
- 8. 如何在單個頁面應用程序中重用表單
- 9. 「單頁多視圖」web應用程序中的數據綁定
- 10. 如何使用GCM向多個用戶發送推送通知
- 11. 如何將推送通知發送到桌面應用程序
- 12. 將數據從Sql Server推送到桌面應用程序
- 13. 從Rails應用程序推送數據到客戶端
- 14. 將用戶從webforms vb應用程序頁面重定向到mvc應用程序頁面
- 15. 如何在單頁應用程序中自動驗證頁面
- 16. 在單頁面應用程序中,如何在刷新頁面後存儲數據和獲取數據
- 17. 如何使用GCM向特定用戶發送推送通知
- 18. 如何使用我的應用程序向特定用戶發送推送通知?
- 19. 如何模仿將數據推送到Web應用程序?
- 20. 如何將數據推送到iphone應用程序?
- 21. Azure應用服務 - 向特定用戶發送推送通知
- 22. 如何在單頁面應用程序中使用SecureSocial
- 23. 如何在Android應用中將AdView推送到頁面底部
- 24. 如何在多維數組中推送多個用戶ID
- 25. 多個單頁應用程序或單頁應用程序
- 26. 如何處理應用程序中的多個用戶|數據?
- 27. 應用程序不會在Firebase中推送數據
- 28. 在R中接收推送數據Shiny應用程序
- 29. 單一應用程序,多用戶,多數據庫設計
- 30. 在J2EE應用程序中,URL未重定向到404頁面
謝謝約翰。我現在正在關注pluralsight(你的SPA視頻) - 令人難以置信的工作。 – RobVious 2013-03-05 03:30:31
謝謝@RobVious :) – 2013-03-06 04:45:00