我有一个MVC应用程序和Web API的解决方案。它们位于不同的项目和域中(使用CORS)。我将其构建为Web API,以便灵活地添加消费者,但目前我的MVC应用程序是唯一的消费者。因此,我正在讨论是否在我的MVC控制器中使用HttpClient或直接实例化ApiController。
在任何一种情况下,我都使用依赖注入(Autofac),所以我也想知道如何配置它,因为HttpClient或ApiController都没有任何类型的接口,我可以通过构造函数参数注入,就像我通常这样做我不知道如何处理这个问题。
注入实例的生命周期范围应该是多少? HttpClient可能应该是Singleton,因为不鼓励在每次请求后处理它。
注意通过调用API返回用于填充图表的大型数据集,这就是我偏离HttpClient的原因,因为我觉得使用Http会产生额外的开销。是直接实例化ApiController的反模式吗?
由于
答案 0 :(得分:4)
你总是可以这样做
var httpClient = new HttpClient(new HttpServer(GlobalConfiguration.Configuration));
这允许您继续使用HttpClient,但请求会直接传递到WebApi服务器,而不会发出网络请求。这样,如果您以后决定分离WebAPI,则客户端代码不会更改