繁体   English   中英

从MVC控制器中使用ASP.NET WebApi

[英]Consume ASP.NET WebApi from MVC controller

我已经开始研究一个新的项目,我通过WebApi公开客户端功能,这样我就可以在多个设备上重用相同的功能,但是移动设备和托管应用程序之间共享一些功能。

我的问题是,虽然我知道如何从设备中消耗WebApi,但我在最佳方式,最佳实践或者只是在如何从承载主机的MVC项目中使用WebApi的方面做了一些空白。 API。

我的第一个想法是按照我需要的方式实例化控制器,但是我有一种潜在的怀疑,虽然它会起作用,但这是一种糟糕的方法。

另一个想法是使用HttpClient。 虽然我有幸运气,因为我永远找不到api的

var client = new HttpClient(new HttpServer(GlobalConfiguration.Configuration));
client.PutAsJsonAsync("/api/project/login", Json(model));

这是一个主观问题,因为确实没有“正确”的答案。 基本上,您需要考虑多个要点。

  • 简单的路由和依赖解析控制器实例的安全性如何?
  • 这个逻辑会用在其他地方吗?
  • 这些真的是两个独立的应用问题吗?

实质上,如果API和MVC应用程序有不同的问题,那么它们应该被正确分离,MVC应用程序应该使用HttpClient调用WebAPI应用程序。 这可以减少攻击向量并很好地分离应用程序问题。

如果MVC和WebAPI都暴露相同的信息并且关注点的安全性/分离不是问题,那么解析控制器的依赖性就足够了。

如果逻辑不是问题分离问题,它将在多个地方使用,那么将其分解为常见组件可能是您最好的选择。

从臀部拍摄这听起来像一个小应用程序,可以在不久的将来从依赖解析控制器中受益。 随着应用程序的增长(或者如果它已经被规划为大),那么将逻辑分离成适当的SOA格式将是有益的。

tl; dr - SO真的不能回答这个问题而不知道申请是什么和将来做什么。 务实。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM