ASP 调用 Web 的 .Net Core Web 应用 API

ASP .Net Core web app calling a Web API

我对 ASP .Net 很陌生。事实上,我对 Web 开发很陌生(我来自 Windows 开发背景)。我需要创建一个 Web 应用程序,并决定将后端创建为 Web API。因此,我使用 ASP .Net Core 1.1 创建了 Web API,现在我正处于需要创建客户端的位置。我将开发一个 Web 应用程序前端 - 再次使用 ASP .Net Core 1.1 就像我对后端 API 所做的那样 - 而一所大学将开发一个 phone 应用程序前端。两者都将连接到同一个 Web API.

我看过一些 ASP .Net Core web 应用程序的示例,但它们都使用 Entity Framework 到 read/write 到数据库。我的 Web 应用程序根本不应该直接访问数据库,而是应该通过 Web API 与数据库交互。不幸的是,我找不到 ASP .Net Core Web 应用程序与 Web API 通信的任何示例。不幸的是,我不熟悉 Angular 等。虽然我肯定会很快学习 Angular,但现在,我只想让我的 Web 应用程序控制器调用 Web API 而不是对数据库进行 EF 调用....当然,除非那是完全错误的:)

如果有人能指出正确的方向 - 也许是一些示例代码或类似的东西,我将不胜感激。谢谢

你的问题确实很宽泛,因此很难具体回答。

我将尝试总结一下您的项目的最佳选择。

使用 MVC 应用程序创建前端并没有错,但您必须了解可能遇到的常见陷阱:

1。 Authentication/Authorization

您必须管理 API 和前端客户端之间的机器对机器身份验证和授权机制。这不是微不足道的。如果您打算从不同的来源访问您的 API(您说还会有一个移动应用程序),我建议您进一步探索 OAuth and OpenId

在 .NET Core 中 IdentityServer v4 是两种协议的出色实现。在机器对机器的上下文中,您应该查看前端的 Authorization CodeImplicit 资助。

2。抽象数据服务

您的数据来源应该无关紧要。获得它的一个好方法是创建存储库或服务接口,这些接口由具体 类 实现,它们使用像 System.Net.Http for data retrieval from your API Rest service and Json.NET for serialization/deserialization 这样的库。这些存储库可以直接注入到您的控制器中。

可以找到一个简单的例子