Asp.net mvc MVC web UI和API设计问题-新视图模型还是使用现有模型?

Asp.net mvc MVC web UI和API设计问题-新视图模型还是使用现有模型?,asp.net-mvc,asp.net-mvc-2,api-design,Asp.net Mvc,Asp.net Mvc 2,Api Design,我最近在为现有web门户创建API时遇到了一个需求。当前的web UI将保持原样,API将为任何希望在核心应用程序之上构建应用程序的客户端提供额外的功能 web ui相当复杂,由几个逐步实现所需功能的表单组成。例如,某些域对象以类似向导的方式拆分为一组表单视图(my viewmodel)。在viewmodel上进行输入值是否为int、给定电子邮件是否有效等方面的验证 我计划重用viewmodel类来表示api中的用户输入 e、 WebUI:PublicActionResult保存(FormOne

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

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

我计划重用viewmodel类来表示api中的用户输入

e、 WebUI:PublicActionResult保存(FormOne表单){…} API:PublicActionResult保存(字符串apiKey,FormOne表单){…}

但这非常困难,即在WebUI视图模型和API视图模型之间有一个完美的映射

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

a) 是否为API创建新的viewmodel? b) 尽可能使用现有的viewmodel-在适当的情况下创建新类 c) 还有别的吗

谢谢,
Y

视图模型只能由一个视图使用

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

有时,为了减少耦合,我们需要使用DRY。这是其中一次


创建新的ViewModels来为您的API服务。

qes听起来不错-您是对的,这是为了最大限度地重用已经编写的代码。