【问题标题】:ASP .Net Core web app calling a Web API [closed]ASP .Net Core Web 应用程序调用 Web API [关闭]
【发布时间】:2017-05-09 00:00:50
【问题描述】:

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

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

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

【问题讨论】:

标签: asp.net-core asp.net-core-mvc asp.net-core-webapi


【解决方案1】:

您的问题确实很广泛,因此很难以具体的方式回答。

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

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

1。认证/授权

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

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

2。抽象的数据服务

您的数据来源应该是无关紧要的。实现这一点的一个好方法是创建由具体类实现的存储库或服务接口,这些类使用System.Net.Http 等库从 API Rest 服务检索数据,Json.NET 用于序列化/反序列化。这些存储库可以直接注入到您的控制器中。

一个简单的例子可以在here找到。

【讨论】:

  • 感谢 Federico - 这些都是非常好的观点。感谢您的示例链接 - 这确实有帮助。很抱歉回复晚了 - 我需要看看为什么当有人回复我的帖子时 StackOverflow 没有通知我
猜你喜欢
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 2013-01-21
  • 2021-12-07
  • 1970-01-01
  • 2021-10-31
相关资源
最近更新 更多