我开始研究一个新项目,我通过WebApi公开客户端功能,这样我就可以在多个设备上重用相同的功能,但是移动设备和托管应用程序之间共享一些功能。
我的问题是,当我知道如何从设备中使用WebApi时,我在最佳方式,最佳实践或者只是在MVC项目中如何使用WebApi的方法上做了一些空白这是主持api。
我的第一个想法是按照我需要的方式实例化控制器,但是我有一种潜在的怀疑,虽然它会起作用,但这是一种糟糕的方法。
另一个想法是使用HttpClient。虽然我有幸运气,因为我永远找不到api的
var client = new HttpClient(new HttpServer(GlobalConfiguration.Configuration));
client.PutAsJsonAsync("/api/project/login", Json(model));
答案 0 :(得分:2)
这是一个主观问题,因为确实没有“正确”的答案。基本上,您需要考虑多个要点。
基本上,如果API和MVC应用程序有不同的关注点,那么它们应该正确分离,MVC应用程序应该使用HttpClient调用WebAPI应用程序。这可以减少攻击向量并很好地分离应用程序问题。
如果MVC和WebAPI都暴露相同的信息并且关注点的安全性/分离不是问题,则解析控制器的依赖性就足够了。
如果逻辑不是问题分离问题,它将在多个地方使用,那么将其分解为常见组件可能是您最好的选择。
从臀部拍摄这听起来像一个小应用程序,可以在不久的将来从依赖解析控制器中受益。随着应用程序的增长(或者如果它已经被规划为大),那么将逻辑分离成适当的SOA格式将是有益的。
tl; dr - 在不知道应用程序是什么和将要做什么的情况下,SO真的无法回答这个问题。务实。