利弊浏览器查询前端服务器查询单独的后端Vs直接查询后端

时间:2017-06-22 05:05:56

标签: api cross-domain microservices

我有一个用react编写的前端和一个连接到数据库获取数据的后端API。它们是分开编写的,是不同的服务。

前端服务器有一堆连接到后端API的路由,我想知道这些路由的优缺点是什么,而不是直接访问后端API?

结构的一个例子:

  1. 前端服务器提供index.html和browser.js。
  2. Browser.js向前端服务器发出GET,POST,PUT请求。
  3. 前端服务器接受这些请求,然后向后端API发出GET,POST,PUT请求。
  4. 替代:

    1. 前端服务器提供index.html和browser.js。
    2. Browser.js对后端API进行GET,POST,PUT请求。
    3. 那么这样做的利弊是什么?我之前的开发人员告诉我,他们是第一种绕过CORS并模糊后端API的IP地址的方法。然而,在我看来,除了额外的网络跳跃之外,考虑到前端服务器必须编写和维护的所有额外代码,测试等等,这是值得的。我想知道我是否缺少一些其他更重要的原因,我的经验不足? (我的直觉说是第二种方式)。请注意,我们处于微服务架构中。

1 个答案:

答案 0 :(得分:0)

  

前端服务器接受这些请求,然后向后端API发出GET,POST,PUT请求。

您描述的模式称为API Gateway,它具有以下特征:

<强>优点:

  • 将客户端与应用程序分区为微服务的方式隔离开来
  • 将客户端与确定服务实例位置的问题隔离开来
  • 为每个客户提供最佳API
  • 减少请求/往返次数。例如,API网关使客户端能够通过单次往返从多个服务中检索数据。更少的请求也意味着更少的开销并改善用户体验。 API网关对于移动应用程序至关重要。
  • 通过将用于调用多个服务的逻辑从客户端移动到API网关来简化客户端
  • 从“标准”公共网络友好API协议转换为内部使用的任何协议

<强>缺点:

  • 复杂性增加 - API网关是另一个必须开发,部署和管理的移动部分
  • 由于通过API网关额外的网络跳跃而增加了响应时间 - 但是,对于大多数应用程序而言,额外往返的成本是微不足道的。

结论:如果您不需要API网关提供的优势,那么您就不应该使用它。