2013-06-02 78 views
0

我想開始爲我們公司實施一個新項目,該項目是關於管理我們公司的資產,如服務器,PC,車輛,傢俱等。主要功能爲該系統包括: -何時使用Web API以及何時使用普通控制器類

  1. 添加不同類型的資產。
  2. 編輯資產。
  3. 刪除資產。
  4. 將資產相互鏈接
  5. 提供有關資產的報告和統計結果。

因此,在我的項目中,我不需要將Web服務作爲其他系統 - 在此階段 - 需要與系統集成。主要是控制器類將返回html頁面,但僅用於某些場景,如jQuery auto,完成控制器類將返回JSON對象以顯示在auto complete上。 那麼我需要在我的情況下使用Web API?或者我可以在不需要查看Web API的情況下實現系統,因爲我之前沒有在WebAPI上工作?

第二個問題,如果我假設我目前需要在當前階段使用Web API;那麼當我應該考慮在我的項目中使用Web API?

BR

回答

3

因爲你的項目需要的HTML頁面,然後使用MVC控制器是首選,因爲它們的內容提供給網絡瀏覽器優化的渲染。

但是,您可以在同一個項目中混合使用MVC控制器和Api控制器。您可以將它們放在不同的名稱空間中,例如MyApp.Mvc.AssetsControllerMyApp.WebAPI.AssetsController

這將讓你在MVC和的WebAPI,如暴露類似的URI路徑:

/assets/1  << MVC view - data rendered in html 
/api/assets/1 << Web API - Json, images, etc.. 

在一般情況下,如果你希望有人能夠消耗XML,JSON等你的API,然後使用網頁api。如果您的操作是以視圖爲中心的(例如用戶對數據執行操作的HTML頁面),那麼您將需要一個MVC控制器。

+1

Web API控制器可以返回任何媒體類型,包括html。然而,MVC控制器針對Web瀏覽器提供內容進行了優化。 –

+0

你說得對。感謝您的提示,回答更新。 –

1

請參閱this:使用控制器呈現您的普通視圖。 ApiController操作僅返回序列化併發送到客戶端的數據。this

相關問題