java - 从客户端应用程序(React Js+Node Js)向 Java Web 服务发出请求

标签 java node.js web-services reactjs express

我有单独的客户端应用程序,位于 ReactJs 和 NodeJS(Express 服务器)中,以及在 tomcat 中运行的 Java 应用程序中的 Web 服务。

我的疑问是在进行网络服务调用方面哪种方法更好。

  1. 一种是从 ReactJS 直接调用 Web 服务并获取数据。
  2. 另一个是调用 Express 服务器中的 Web 服务。来自客户端浏览器的请求将发送至 Express,Express 将调用所有 Web 服务。

我知道直接调用 Web 服务的一个问题是跨域策略,可以通过在 Java 服务器中设置配置来处理。

除此之外应该有更好的方法。

最佳答案

根据我的经验,使用 UI 应用程序的直接调用并避免中间服务器最终会更好。

直接这样做的原因是我们的服务器最终受到了很多基于IP地址的限制,并且所有请求都来自中间服务器(nodeJS服务器),因此端服务器的DDOS保护必须有一些异常(exception)(我们的 Node 服务器可能位于具有动态 IP 地址的 ACS 上,因此可能难以管理)。

此外,如果您想传递和跟踪最终用户 IP 地址,您需要管理 Node 服务器上的 header (以确保您按照原始请求中的方式传递它)。

如果调用来自 React 应用程序并且只需在 Java 服务器上设置 CORS,那么管理这种情况会更简单。

直接在 UI 应用程序上调试它也更容易,因此您将仅在一个位置观看响应日志。换句话说,您最终可能会调试 Node 服务器和 UI 应用程序。

希望这能有所帮助。

关于java - 从客户端应用程序(React Js+Node Js)向 Java Web 服务发出请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44925983/

相关文章:

java - 在不使用 Java.Runtime 的情况下用 Java 解密 gpg

java - Microsoft JDBC 中的 JTDS 属性相当于什么?

java - 设计可扩展的应用程序

node.js - 将 Bluemix APP-ID 身份验证从 Node.js 传递到 Angular5

java - Spring 3.0 JAX-WS 和/或与 Apache CXF 对比

java - 在JAVA中组合字符和字符串的正则表达式

node.js - 如何创建 session express.js

javascript - 如何检查/迭代 Node 中的对象?

php - 检查 WS* 服务器实现中的签名

python - 自定义域路由到 Flask 服务器,自定义域始终显示在地址栏中