2010-04-23 59 views
3

這似乎是一個基本問題,但經過大量搜索我似乎無法找到一個簡單的解釋:我應該將RESTful API控制器與「常規」控制器分開嗎?

如果我正在構建一個Web應用程序,將主要通過Web瀏覽器訪問,但是如果兩者之間存在很大程度的分離,那麼這也會以REST方式支持一些API請求?

一方面,似乎大量的功能是相同的,在不同的視圖中呈現相同的數據(HTML或XML/JSON)。但另一方面,我需要向瀏覽器展示某些不太適合REST風格的方法:如何獲取空表單來創建資源的新實例以及如何獲取預填表單編輯現有資源。

這兩種不同的方式通過不同的控制器來訪問系統?同一控制器中的不同方法?與視圖類型切換完全相同的方法?

回答

0

您的核心控制器不必更改,但這並不意味着您無法單獨支持您的UI。例如,您擁有的兩個表單示例對於Web API都是唯一的。您的條目URI當然可以鏈接到機器和用戶界面的這些頁面,但不要指望機器用戶真正使用它們。另外,如果你的機器客戶端只是XML/JSON,那麼這些表示根本不需要這些表單的鏈接,因爲它們不會使用它們,並且它們不會在JSON/XML無論如何。您可以通過內容協商進行管理。