Новый одесский форум ОдессаМАМА.net

Название: 构建 GraphQL 网关:组合、缝合或合并任何数据源 史蒂夫·基普 [Версия для печати]

Автор: kazi01    Время: 2024-1-9 09:26
Название: 构建 GraphQL 网关:组合、缝合或合并任何数据源 史蒂夫·基普
在本文中,我们将讨论如何从多个源获取数据同时保持前端敏捷的问题,以及一个潜在的解决方案:使用 GraphQL 网关。 Backward Skip 10s Play Video Forward Skip 10s 作为软件工程师,我们都面临着组合来自多个系统的数据的挑战。即使单个页面也需要来自多个服务的数据才能呈现。 数据无处不在,从 CRM 到财务系统,从 SaaS 平台到数据库。每个企业都不可避免地购买过多的 SaaS 平台,然后希望在所有平台上获得统一的业务视图。我们必须正视这一点并将一切整合起来。 GraphQL 网关将传统 API 网关与 GraphQL 的优点相结合。 我们将首先讨论 API 网关的好处,然后看看 GraphQL 如何融入其中。请继续阅读本文的结尾,我们将介绍一些用于构建我们自己的 API 网关的框架。


目录 Learn to Code with JavaScript API 网关的好处 保护我们面向公众的 API 免受黑客攻击是一项全职工作。随着时间的推移,组织已经发展到创建许多 API,从SOA到微服务。组织更愿意在所有这些 API 前面添加额外的 行业电邮清单 安全层,并确保对数据的访问始终遵循相同的身份验证规则,而不是将这些 API 直接放到 Internet 上。 他们通过 API 网关来做到这一点。 Kong或Apigee等产品从中央位置公开内部 API。它们充当反向代理,具有 API 密钥管理、速率限制和监控等功能。 API 网关允许我们控制谁和什么可以访问每个服务,监视连接并记录访问。 最近,应用程序需要结合来自 API 网关和其他外部 SaaS 提供商的数据。这意味着旧的中心化工具(确保我们的规则得到遵守)现在经常被绕过。



想象一下我们正在为我们的公司构建一个网络应用程序。我们的任务是创建用户个人资料页面。在登录过程中,我们需要组合来自多个系统的数据: Salesforce CRM:保存一般客户数据,例如名字和姓氏。 订单:最近的订单位于组织内的订购系统中。 通知服务:通知设置和最近消息位于连接到 Node.js 服务的特定于应用程序的数据库中。 客户端需要发出三个单独的请求才能获取数据,如下图所示。 发出三个单独的请求在上图中,Web 客户端发送三个单独的 API 请求,然后必须在前端代码中合并结果。发送多个请求会影响应用程序的性能,而组合这些数据会增加代码的复杂性。此外,如果有多个应用程序,现在所有应用程序都必须了解所有后端,并且一项服务中的单个 API 更改可能会导致我们所有应用程序的更新。






Добро пожаловать Новый одесский форум ОдессаМАМА.net (https://odessamama.net/) Powered by Discuz! X3.1