我想为大型ASP.NET MVC应用程序创建一个API。此应用程序为其所有视图使用强类型的视图模型。 API的最重要的工作就是在其他平台上启用该网站的功能,例如iPhone的目标C.在ASP.NET MVC中重用ViewModels for API?
现在这个想法已经从一开始就重用了API的ViewModels和现有控制器动作,在这样的一个视图模型以控制器而不是视图的形式返回JSON或Ajax结果的方式。
但是有一些关于这方面的讨论,因为viewmodels有很多复合信息,并不总是对API有用。例如,一个典型的API函数可能是GetRanking()。属于Ranking()动作的视图模型实际上有更多的数据,比如当前用户的名字,或者是关于排名的一些解释。
所以问题是,什么是最好的方法来解决这个问题:为api编写单独的动作并返回序列化的域对象,或重用当前的动作和视图模型,并忽略不需要的数据?
你会重用控制器操作还是为API创建单独的操作? – Randam 2010-12-16 20:53:28
这是一个诚实的战术决定。也就是说,你的控制器应该是简单的,便宜的和不必要的,因为真正的魔法应该发生在领域层,所以我可能会做一组单独的服务控制器。 – 2010-12-17 16:11:14