从ASP调用Web API.使用Razor的Net Core 2 Web应用程序



我对这个话题做了很多研究,但似乎找不到答案。

我写了一篇ASP。Net Core 2 Web API。我现在想开发一个前端。我一直在考虑使用ASP。NetCore2Web应用程序使用剃刀,但我很难调用我的网络API。所有ASP。NET指南似乎将数据库访问包含在web应用程序控制器中,而不是调用外部web api。

我看到了一些在Razor控制器中使用HTTP客户端来调用web API的例子,但我不确定这是否是最佳实践。

我的最终目标是拥有两个应用程序:一个web api和一个web应用程序。我不介意学习新技术,但我已经开始使用Razor,因为它看起来很简单。

我也考虑过遵循ASP。NET核心指南,没有API,但这似乎也不是最佳实践。

除非这两个应用程序将分别部署,否则您可能不应该在MVC(Razor(控制器中使用HttpClient

对于前端,您需要决定是只使用Razor,还是使用Angular或React等客户端框架。如果您使用的是Razor,那么您就可以从服务器生成的文件中有效地运行客户端。在这种情况下,您还可以放弃WebApi,直接提供您的数据(即经典的MVC应用程序(。

如果你想坚持使用WebApi,那么理想情况下你需要从JavaScript调用它。大多数大型框架/库都可以做到这一点。如果你想要一个例子(以及哪个库(,请告诉我,我会详细介绍这个答案。

您似乎仍在争论是否要有API,这让我觉得您还没有100%清楚您要解决的任何问题的解决方案。我想回答这个问题可能是第一步。

关于Razor;我不知道什么是剃须刀控制器。这取决于你的前端是什么,但假设它是一个网站(听起来像是(,那么我个人的偏好是有一个Razor前端,带有对API的AJAX调用。

你可以更进一步,把你的后端和前端分开。如果你有一个API,那么你可以把它看作一个单独的应用程序来调用,在这种情况下,你不局限于你使用的前端技术。

我希望这会有所帮助。

相关内容

最新更新