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

7

我长期以来都是使用Web Forms模型作为ASP.NET开发者,并且正在利用一个新项目的机会来尝试使用ASP.NET MVC。

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

顺便说一句,至少对于这种特定情况,我有点犹豫要全面采用REST样式创建API。这个应用程序可能需要API版本控制的概念,我认为REST方法在这方面有点繁琐,因为API基本上散布在站点的所有控制器中。(但如果有解决版本控制需求的好答案,我并不完全反对采用它。)

那么,Stack Overflow的居民们怎么看呢?

2个回答

8

我同意Kilhoffer的观点。尝试使用一个从“IFacade”继承的“Facade”包装类。在您的Facade类中放置消耗Web服务的代码。这样,您的控制器将仅对Facade进行调用。这种方法的优点是,您可以交换实现相同IFacade接口但不实际与Web服务通信并返回静态内容的“DummyFacade”。允许您进行一些单元测试而不会影响服务。基本上与存储库模式的想法相同。


1
我同意。我建议您在所有服务消费应用程序中这样做。 - Kilhoffer

3
我建议使用服务层来为客户端或服务器端的消费者提供服务。甚至可以根据调用方的需求返回多种格式的数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接