这更像是一个设计问题,而不是一个问题。所以这就是场景,你有一个带有webapi控制器的asp.net 5应用程序,它为许多类型的客户端提供数据:web,ios,java apps等。让我们说其中一个客户端碰巧是一个mvc控制器与webapi相同的Web主机和visual studio解决方案。
作为一个类实例调用webapi有什么后果,而不是做其他客户端类型正在做的事情 - 哪个是基于休息的网络调用?显而易见的好处是消除了网络呼叫的空头并消除了序列化。但我想知道一些可能的负面因素。有人曾经这样做过吗?
答案 0 :(得分:2)
简单的解决方案可能是您可以将该逻辑提取到单独的程序集中......让我们说“业务逻辑层”,以便WebApi和MVC都可以访问它。
这有缺点,你将无法将MVC和WebApi分开。我的意思是,使用WebApi作为单个数据接口可以允许您与WebApi托管的位置分别托管MVC应用程序...但是第一段中的方法将耦合两个项目并将强制您将它们一起托管以访问数据。
答案 1 :(得分:1)
如果直接调用该类,HTTP管道完成的任何工作都将无法完成。因此,您的API类无法访问HttpContext,例如。
此外,安全性或与Http相关的注释(属性)都不起作用,因此您的MVC控制器可能需要处理它。