我有单独的客户端应用程序,位于 ReactJs 和 NodeJS(Express 服务器)中,以及在 tomcat 中运行的 Java 应用程序中的 Web 服务。
我的疑问是在进行网络服务调用方面哪种方法更好。
- 一种是从 ReactJS 直接调用 Web 服务并获取数据。
- 另一个是调用 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/