我正在開發一個具有移動應用程序的MVC項目,所以有一點很清楚,我們必須使用Web API才能在移動應用程序中使用它。我們應該在相同的解決方案中從MVC應用程序調用Web API嗎?
在我們開始開發Web站點時創建了API之後,我們感到困惑並討論了是使用API還是直接訪問Business對象。而且我們最終意見形成了更有經驗的開發人員來消費Web API,而不是直接使用Business對象。
我對此解決方案結構感到困惑。
1)爲什麼我們應該使用的Web API,使HTTP請求(這是費時)獲取或放置數據,而不是業務對象直接是在同一個解決方案。
2)有了參數後,他們說如果客戶想要在不同的雲服務器上託管API和web,並且只在API上應用縮放,或者他想要有不同的URL來訪問API和Web(這是一些什麼邏輯)。那麼在這種情況下,我們應該使用相同的解決方案從MVC應用程序調用Web API?
3)如果我們在不同的主機上託管API和Web,這意味着我們的Web將使用WebClient並在每個導航上都有HTTP調用。這樣對嗎?
4)如果我們將業務對象的形式既API和Web託管不同的服務器上,然後如果BL什麼變化將需要更新構建兩個服務器上。
5)或者,我們應該創建只有一個API項目,並可以添加視圖或HTML頁面開發Web界面,以便通過這種方式,我們可以直接從AJAX調用API。
根據我的知識#5是最好的解決方案或API僅用於第三方訪問。如果我們在相同的解決方案中有DB,EF,數據層和業務層,那麼我們不應該使用API來進行HTTP調用並直接訪問業務對象。 (如果我錯了,請糾正我)當移動應用程序或桌面或任何人想訪問應用程序時需要API,以便我們可以擁有相同的存儲庫和數據層。
在我的情況我已經創建API,因爲我們也有移動應用,並在項目API方面,我們稱爲業務層(單獨的項目)和業務層通信,數據訪問層(單獨的項目)。所以我的問題是,如果我們將API和Web託管到不同的服務器,那麼調用API是一個HTTP請求,可能需要更長的時間,而不是使用來自業務層的方法,因爲我們創建項目,而且我們有.dll的業務層。在API控制器中,我們只是將我們的業務轉換爲json格式。
我在互聯網上搜索,但沒有得到令人信服的答案。我發現博客http://odetocode.com/blogs/scott/archive/2013/07/01/on-the-coexistence-of-asp-net-mvc-and-webapi.aspx討論同樣的觀點,但在博客中,我的問題是爲什麼我們需要考慮場景#3?
謝謝!在我的情況我已經創建API,因爲我們也有移動應用,並在項目API方面,我們稱爲業務層(單獨的項目)和業務層通信,數據訪問層(單獨的項目)。所以我的問題是,如果我們將API和Web託管到不同的服務器,那麼調用API是一個HTTP請求,可能需要更長的時間,而不是使用來自業務層的方法,因爲我們創建項目,而且我們有.dll的業務層。在API控制器中,我們只是將我們的業務轉換爲json格式。 –