2008-09-25 45 views
6

我一直是Web表单模型中的一名长期ASP.NET开发人员,并且正在使用一个新项目作为契机,让我的脚感受ASP.NET MVC。使用MVC在ASP.NET中实现API的最佳方式是什么?

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

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

那么,你说什么,堆栈溢出denizens?

回答

7

我同意Kilhoffer。尝试使用继承自“IFacade”的“Facade”包装类。在您的Facade类中,将您的代码用于您的Web服务。通过这种方式,您的控制器将只需调用Facade。这个存在的好处是,您可以交换实现了相同IFacade接口的“DummyFacade”,但实际上并不会与Web服务对话并返回静态内容。让你实际上做一些单元测试而不会触及服务。基本上和Repository模式有相同的想法。

+1

我同意。我会建议你所有的服务消费应用程序。 – Kilhoffer 2008-09-25 18:11:31

2

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

相关问题