使用MVC在ASP.NET中实现API的最佳方法是什么?

时间:2008-09-25 17:57:54

标签: asp.net asp.net-mvc web-services

我一直是Web表单模型中的长期ASP.NET开发人员,并且正在使用一个新项目作为借助ASP.NET MVC的机会。

应用程序需要一个API,以便一组其他应用程序可以与之通信。在此之前,我总是使用标准的Web服务构建API。

作为一个旁注,我有点犹豫是否首先陷入创建API的REST风格,至少对于这个特定的实例。这个应用程序可能需要一个API版本控制的概念,我认为在这方面,API本质上分散在站点的所有控制器上的REST方法有点麻烦。 (但如果对潜在的版本控制潜力要求有一个很好的答案,我不会完全反对它。)

那么,你说什么,Stack Overflow居民呢?

2 个答案:

答案 0 :(得分:7)

我同意Kilhoffer的看法。尝试使用继承自“IFacade”的“Facade”包装类。在您的Facade类中,将代码用于使用您的Web服务。通过这种方式,您的控制器将只调用Facade。这方面的优点是你可以交换实现相同IFacade接口的“DummyFacade”,它实际上并不与Web服务通信,只返回静态内容。让您实际进行一些单元测试,而无需点击服务。与存储库模式基本相同。

答案 1 :(得分:2)

我仍然会推荐一个可以为客户端消费者或服务器端消费者提供服务的服务层。甚至可能以各种格式返回数据,具体取决于消费来电者。