【发布时间】:2017-05-17 22:31:35
【问题描述】:
我有两个 ASP.NET Core Web 应用程序(在不同的物理服务器上),并且都使用 EF Core。虽然两者都是“服务器”,但其中一个也从另一个收集数据(即其中一个也是“客户端”)。
ASP.NET Core 不同,因为没有“MVC”和“WebAPI”,它结合了两者。我不确定要使用哪些新 API。
我应该如何将数据从一个传输到另一个?
我最初的想法是“客户端”应用程序有一个经过身份验证和授权的 GET 操作来返回数据。但是怎么做?它可以直接返回一个 EF 实体,还是我负责与 JSON 的序列化?它应该返回IActionResult 还是其他?它应该是常规请求还是 AJAX 请求? OWIN 是否与此有关?
现在 ASP.NET Core 是否有任何智能技术可用?我不需要解决方案,只需要一些正确方向的指针。
【问题讨论】:
-
从客户端的角度来看,服务器是“Core”还是“Web API”或者其他任何技术都没有区别。无论幕后使用什么框架,由此产生的外部行为都是相同的。我想你会有返回数据的操作(可能是 JSON 格式,尽管你可以使用任何你想要的格式),就像你在以前版本的 Web API 中一样。
-
@David 当然,但 Core 是新的和闪亮的,我怀疑可能有一些很酷的东西可以让这一切变得简单。例如,它允许从动作中返回各种数据,这是以前无法做到的。基本上,我不想重新发明轮子。
-
在以前的 Web API 版本中,如果您想“返回一个 EF 实体”,那么您只需
return该方法中的那个对象。我不明白它怎么会变得比这更简单。在 C# 中,当你想从一个方法返回某些东西时,你return它。不管它有多新,该框架仍然使用 C#。也许您可以通过一个示例来说明您要简化的内容? -
@David 我不知道你可以简单地返回一个实体。我在the asp.net core docs site 上找不到任何提及。是否自动序列化为 JSON?
-
这看起来适用:docs.microsoft.com/en-us/aspnet/core/mvc/models/formatting 有多种选择,具体取决于您需要对响应进行多少控制。返回任何对象时,带有
200 OK响应代码的 JSON 格式的响应正文通常是默认值。但是您可以通过使用特定的框架结果类型和辅助方法来更好地控制 HTTP 响应。 (如Ok()或Json())
标签: c# asp.net asp.net-core asp.net-core-mvc asp.net-core-webapi