0

我最近遇到了为现有 Web 门户创建 API 的需求。当前的 Web UI 将保持原样,API 将为希望在核心应用程序之上构建应用程序的任何客户端提供额外的功能。

Web ui 非常复杂,由几个逐步完成的表单组成,以实现所需的功能。例如,某些域对象以类似向导的方式拆分为一组表单视图(我的视图模型)。输入的值是否为 int、给定的电子邮件是否有效等方面的验证发生在视图模型上。

我打算重新使用 viewmodel 类来表示 api 中的用户输入。

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

但这太难了,即在 WebUI 视图模型和 API 视图模型之间有一个完美的映射。

在这种情况下,什么是好的设计?

a) 为 API 创建一个新的视图模型?b) 尽可能使用现有的视图模型 - 在适当的情况下创建新类 c) 其他?

谢谢, Y

4

1 回答 1

2

一个 ViewModel 只能被一个 View 使用。

不要重复使用它们,这只是问题的根源。

有时,我们违反 DRY 以减少耦合。这是其中之一。

制作新的 ViewModel 来为您的 API 提供服务。

于 2011-03-29T15:53:56.790 回答