gpt4 book ai didi

node.js - 微服务、API 网关和前端

转载 作者:行者123 更新时间:2023-12-03 12:12:11 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

去年关闭。




Improve this question




我最近开始探索微服务和 API 网关的概念,并且对如何托管前端端点特别困惑。

如果我有一个 API 网关充当对我的所有服务的请求之间的中间人,那么前端究竟应该托管在哪里?如果我请求/api/example,我知道我的 API 网关应该将其路由到适当的服务并转发该服务响应。但是,我不明白 API 网关应该如何在微服务上下文中处理/home/。在这种情况下,我们希望将/home/对应的 html/css/javascript 传递给发出 GET 请求的客户端。这是否意味着我们应该有某种前端服务?创建一个只返回 HTML/CSS/JS 的服务会不会是多余的并增加延迟,因为我们真正需要做的只是立即返回与我们的前端关联的 HTML/CSS/JS?

我正在考虑的另一种方法是让 API 网关本身提供端点,这些端点返回客户端呈现前端所需的 HTML/CSS/JS。换句话说,API 网关可以在接收到/home/的 GET 请求时立即响应/home/对应的 HTML,而不是调用服务。但是,我在网上读到 API 网关实际上不应该为端点提供服务,而只是将它们代理到服务。

这是我的主要问题:当您的后端使用微服务架构构建时,前端代码应该放在哪里?

最佳答案

我假设您的前端是单页应用程序。 SPA 具有静态内容,如 HTML、CSS、图像、字体等。它是部署为使用 REST API 从后端获取数据的静态网站的理想选择。
在 AWS、GCP 等云环境中,建议将 SPA 应用程序与 REST API 分开托管。例如AWS SPA 中的应用程序可以部署在 Amazon S3 中,并且无需通过 API 网关即可直接访问。
API 网关应该仅用于路由 REST API 调用并执行交叉问题,例如身份验证等。 然而,这种方法的问题是在从前端点击 REST API 时会出现 CORS 错误,因为 SPA 和 API 网关将被托管在不同的域上。为了解决这个问题,需要在 API 网关上启用 CORS。
如果您正在寻找更简单的解决方案,可以通过 API 网关从服务提供前端。由于静态内容在 SPA 中仅提供一次,因此对于更简单的应用程序应该可以从这种方法开始。
https://aws.amazon.com/blogs/apn/how-to-integrate-rest-apis-with-single-page-apps-and-secure-them-using-auth0-part-1/
https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

关于node.js - 微服务、API 网关和前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62079202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com