【问题标题】:ASP.NET Web API 2 make REST calls in a chainASP.NET Web API 2 在链中进行 REST 调用
【发布时间】:2015-01-27 08:28:25
【问题描述】:

如果我有一个使用 MVC 5 构建的 Web 应用程序和一个使用 Web API 2 的服务。以下场景是一个好的做法吗?

MVC UI jQuery --> call Web API 2 endpoint --> which will call another service 

例如:

  1. 应用程序位于:http://domain.com
  2. 当用户访问应用程序点击按钮时
  3. 按钮的 jQuery click 事件处理程序对 http://domain.com/api/user/getdata 进行 GET REST 调用
  4. 来自 ApiController User 的操作 GetData 使用 C# 代码对 http://anotherserver.com/api/something 进行 GET REST 调用 5 当来自 4 号的调用返回数据时,来自 4 号的操作GetData 会将数据返回给 3 号(原始请求者 jQuery)。

【问题讨论】:

  • 这没有错。你特别担心什么?
  • 只是想知道应用程序的设计是否是一种良好的实践,从一个服务到另一个服务的 REST 调用链......

标签: asp.net-web-api asp.net-mvc-5


【解决方案1】:

“链接”调用没有任何问题。显然,调用链越长,故障点就越多,完成所有往返所需的时间就越长。

所以问题是:为什么要间接调用第二个 REST API?如果这是合法的业务或设计原因,请继续。否则,进行必要的更改以直接从客户端调用第二个 REST API。

单独的小型服务的一个正当理由是简洁的模块化设计。另一个是高度精细的安全性。

与许多事情一样,这是一种权衡,正确的决定取决于您的具体情况。

【讨论】:

  • 基本上我有一个 ASP.NET Web API 服务作为第一个服务,第二个(最后一个服务)服务实际上是一个第三方应用程序,它提供了一个 REST 端点,我可以调用它来获取数据.关键是我的 web api 是一个自定义的,应用程序本身将使用它来提供数据等等。基本上我无法控制链中的最后一个 REST 服务。
  • 根据您的描述,我会说您的设计是正确的。通过调整中间 API 服务,可以对客户端隐藏对第三方服务的任何更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
  • 2014-08-10
  • 2015-01-12
  • 1970-01-01
  • 2017-02-10
  • 2016-05-06
  • 2018-12-30
相关资源
最近更新 更多