Mar*_*one 7 c# asp.net-mvc asp.net-mvc-4 asp.net-web-api
我已经开始研究一个新的项目,我通过WebApi公开客户端功能,以便我可以在多个设备上重用相同的功能,但是移动设备和托管应用程序之间共享一些功能.
我的问题是,虽然我知道如何从设备中消耗WebApi,但我在最佳方式,最佳实践或者只是在如何从承载主机的MVC项目中使用WebApi的方面做了一些空白. API.
我的第一个想法是按照我需要的方式实例化控制器,但是我有一种潜在的怀疑,虽然它会起作用但这是一种糟糕的方法.
另一个想法是使用HttpClient.虽然我有幸运气,因为我永远找不到api的
var client = new HttpClient(new HttpServer(GlobalConfiguration.Configuration));
client.PutAsJsonAsync("/api/project/login", Json(model));
Run Code Online (Sandbox Code Playgroud)
这是一个有点主观的问题,因为确实没有“正确”的答案。本质上,您需要考虑多个点。
本质上,如果 API 和 MVC 应用程序有不同的关注点,那么它们应该正确分离,并且 MVC 应用程序应该使用 HttpClient 调用 WebAPI 应用程序。这可以很好地减少攻击向量并分离应用程序问题。
如果 MVC 和 WebAPI 都公开相同的信息,并且安全/关注点分离不是问题,那么解决控制器的依赖关系就足够了。
如果逻辑不是关注点分离问题并且它将在多个地方使用,那么将其分解为通用组件可能是您最好的选择。
从臀部开始,这听起来像是一个小型应用程序,可以在不久的将来从解决控制器的依赖关系中受益。随着应用程序的增长(或者如果它已经计划变得很大),那么将逻辑分离为适当的 SOA 格式将是有益的。
tl;dr - 如果不知道应用程序是什么以及将做什么,那么真的无法回答这个问题。务实一点。
| 归档时间: |
|
| 查看次数: |
5793 次 |
| 最近记录: |