2011-03-29 31 views
0

我最近遇到了爲現有門戶網站創建API的要求。當前的Web UI將保持原樣,API將爲想要在覈心應用程序之上構建應用程序的任何客戶端提供額外的功能。MVC網頁界面和API設計問題 - 一個新的視圖模型或使用現有的模型?

網絡用戶界面非常複雜,包含幾個逐步形式以實現所需的功能。例如,一些域對象以類似嚮導的方式被分割成一組表單視圖(我的視圖模型)。在輸入的值是否爲int,給定的電子郵件是否有效等方面進行驗證發生在viewmodel上。

我打算重新使用viewmodel類來表示api中的用戶輸入。

例如WebUI:public ActionResult Save(FormOne form){...} API:public ActionResult Save(String apiKey,FormOne form){...}

但是這是如此困難,即WebUI視圖模型和API視圖模型。

在這種情況下,什麼構成了良好的設計?

a)爲API創建一個新的視圖模型? b)儘可能使用現有的視圖模型 - 在適當的地方創建新的類別 c)其他?

感謝, ÿ

回答

2

一個ViewModel只能由一個視圖中使用。

不要重複使用它們,它只是問題的根源。

有時,我們想要違反DRY以減少耦合。這是其中的一次。

使新的ViewModel爲您的API提供服務。

+0

qes聽起來不錯 - 你是對的,這是爲了最大限度地重用已經寫好的代碼。 – Yannis 2011-03-29 16:50:45