在企业中成功采用 GraphQL 有助于提供出色的用户体验,从而改变整个行业。让我们看一下做到这一点的公司和产品。

正如 API 状态报告中所述,GraphQL 的受欢迎程度在过去三年中不断增长。这在 2024 年 GraphQL 报告中得到了体现,61.5% 的受访者在生产中使用 GraphQL,15.5% 的受访者正在探索它。

开发人员欣赏 GraphQL 的结构化数据 (31.1%)。他们还喜欢它的易用性 (28.7%) 和类型检查 (18.7%)。这些品质凸显了其简化数据访问和加速开发的能力。GraphQL 还正在改变许多行业的公司构建和提供出色用户体验的方式。

图片

除了率先使用 GraphQL 的 Meta 之外,Airbnb 使用 GraphQL 的规模提升了 10 倍,Twitter 也使用 GraphQL 重建了其公共 API。这些例子表明 GraphQL 可以显着增强企业发展。

GraphQL 和 RESTFUL API 之间的争论仍在继续。然而,重要的是要记住 GraphQL 更适合某些用途。它可以在一次请求中获取准确的数据,从而减少过度获取和不足获取。

您可能正在考虑在下一个项目中使用 GraphQL,或者感觉陷入 REST 环境中。在本文中,我们将讨论企业中成功采用 GraphQL 的 8 个示例,以及企业如何使用这种强大的查询语言彻底改变其产品和服务。

使用 GraphQL 的公司示例

Meta:从移动应用程序到Meta应用程序重写

使用 GraphQL 最著名的例子之一是 Meta,该公司创建并开源了 GraphQL。早在 2012 年,Meta 还是 Facebook。该平台在 RESTFUL API 方面面临许多挑战。这些尤其与过度获取、版本控制和移动优化有关。如果工程团队继续使用 REST 进行开发,他们将会损失大量时间。相反,Meta 开发了 GraphQL。它是一种数据查询语言,允许客户端从服务器指定他们需要的数据。他们可以通过分层和强类型的方式来做到这一点。

使用 GraphQL,Facebook 可以:

  • 优化其数据获取和交付。

  • 减少客户端和服务器上的代码和复杂性。

  • 更快、更自信地迭代新功能。

快进到 2015 年,Facebook 公开推出了 GraphQL。借助 Next.js、React、React Native 和 Gatsby 等基于 React 的框架,开发人员获得了强大的工具来彻底改变开发工作流程。截至目前,基于 React 的框架仍然是从 GraphQL API 提取数据的最强框架。

图片

2020 年,Meta 工程师进行了彻底重写,以提供新的 Meta 应用程序,以实现客户至上的体验。这次,Meta 使用 React 和 Relay(React 中 GraphQL 的客户端)进行了重新架构,并使用 GraphQL 对其数据获取基础设施进行了现代化改造(因为旧站点通过服务器端 PHP 渲染临时检索数据)。这会导致 Meta 的应用程序默认获取正确的数据。它能够以性能优化的方式开发功能。

正如 Meta 工程师 Ashley Watkins 和 Royi Hagigi 所说,“工程体验的改进和用户体验的改进必须齐头并进”。先进的技术堆栈对于 Meta 提供最现代的体验至关重要。

三星:使用 GraphQL 为其客户平台提供支持

三星是数字设备领域的领导者。它探索了与客户联系的创新方式,其中之一就是增强其数字会员平台。在寻求提高客户参与度的过程中,三星遇到了挑战,而 GraphQL 发挥了关键作用。

会员平台最初被设计为仅限移动设备的平台,这阻止了三星与购买其他设备的客户建立联系。此外,由于遗留堆栈,三星子公司的开发周期缓慢。旧堆栈使用 Abode Experience Manager 作为整体 CMS。这意味着每次营销团队想要创建新类型的内容时,他们都需要开发团队的支持。结果,开发能力显著下降。

最终,三星迁移到 Hygraph,这是一个 GraphQL 原生的无头 CMS。在其新会员平台中,三星使用了无头架构。

Hygraph 开箱即用的 GraphQL 支持使前端开发人员能够专注于构建功能,而无需后端开发人员进行 API 调整。

另一方面,内容编辑者使用开发人员提供的内容模型。他们只需要在需要新的内容模型时提出开发请求,从而使编辑体验更具可扩展性。

于是,三星推出了新的会员平台。它适用于移动设备和桌面设备。它将页面更新时间缩短了一半,并将客户参与度提高了 15%。

Hygraph 对 GraphQL 的开箱即用支持使我们的前端开发人员能够专注于构建功能,而无需后端开发人员进行 API 调整。他们可以在 Hygraph 直观的 UI 中快速构建和测试查询,这使我们能够灵活地塑造内容模型并几乎立即在前端测试结果。

Andre Lang

Cheil 开发主管

LinkedIn:使用 GraphQL 加速产品开发

LinkedIn 是世界上最大的职业网络。它采用了 GraphQL 来简化产品开发。

2022 年,LinkedIn 开发人员分享了他们如何使用 GraphQL 为外部 API 合作伙伴设计新用例的入门流程。REST API 的效率挑战导致了这一决定:LinkedIn 必须为每次使用创建一个新的 REST API,而运行所有外部 API 是一个高成本障碍。只有大规模或高投资回报率的用例才能克服它。

图片

通过采用 GraphQL,LinkedIn 允许用户使用类型探索服务能力。可以通过定义新的 GraphQL 查询来创建新的用例。因此不需要更多的工程工作。GraphQL 服务将自动使用其类型系统来执行此新查询。通过这样做,LinkedIn 在 API 的制作和外部化方面将开发速度加快了 90%。

2023 年初,LinkedIn 开发人员分享了他们采用 GraphQL 的最新经验。这次,他们使用 GraphQL 构建面向会员和客户的应用程序。GraphQL 层以独特的方式构建,如下所示:

GraphQL 类型的系统是通过联合来自 LinkedIn 自己的用于构建和操作微服务的框架 Rest.li 的各个实体模式来自动生成的。

GraphQL 查询执行端点是分布式的并且在每个单独的前端微服务上可用,从而避免了对中央网关服务和额外网络跃点的需要。

生产服务器上只允许预先注册的查询。这可以实现更好的性能、安全性和开发人员体验。

图片

LinkedIn 的示例展示了 GraphQL 如何引入范式转变,从而提高生产力、高效处理复杂数据并提供高质量的用户体验。

Netflix:利用 GraphQL 彻底改变视频内容交付

Netflix 于 2018 年开始使用 GraphQL。开发人员选择使用查询语言来获取名为 Monet 的内部应用程序的数据。Netflix 用 GraphQL 取代了 REST API。这使他们能够很好地从各种来源加载数据,而不会过度获取,从而减少带宽瓶颈。

也许当时的成功增强了 Netflix 开发人员对 GraphQL 的信心。2022 年,Netflix 更新了其 iOS 和 Android 应用程序。Netflix 将其移动应用程序迁移到 GraphQL,并且停机时间为零。这需要从客户端到 API 层进行彻底改革。

这次,GraphQL 取代了 Netflix 的内部 API 框架 Falcor。Federated GraphQL 现在支持移动应用程序。它是一种分布式 API 方法,领域团队可以独立管理和拥有 API 的特定部分。Netflix 安全迁移到 GraphQL。这适用于数以亿计的客户,没有造成任何干扰。

图片

图片

Telenor:大规模支持视频流

Telenor 是一家挪威电信公司。这是使用 GraphQL 的公司的另一个例子。他们用它来支持他们的视频服务。

Telenor 需要一个可扩展且灵活的解决方案来管理来自不同来源的数千个视频和电影的元数据。它将通过不同的平台和设备将它们交付给数百万客户。

Telenor 选择 Hygraph 是因为其强大的 GraphQL API、无代码模式编辑器和简单的内容编辑 UI。Hygraph 使 Telenor 能够集中数据管理,并通过消除手动且容易出错的 XML 文件编辑工作来简化流程。

Telenor 还利用了 GraphQL 的优势,例如准确获取所需的数据、减少网络负载和延迟,以及实现更快、更轻松的开发和测试。此示例展示了 GraphQL 如何帮助 Telenor 构建可扩展且高效的视频流平台。它展示了 GraphQL 在媒体和娱乐行业的多功能性。Telenor 取得了以下成果:

  • 完整的 GraphQL 原生支持,包括强大的 API 和生态系统支持

  • API满足性能需求,数百万次 API 调用的延迟低于 100 毫秒,它比其他商业 GraphQL API 快得多

  • 技术堆栈具有高度灵活性

  • Hygraph 项目的第一次迭代在 3 个月的期限内完成,从而加快了上市速度

  • 时尚的 UI,可以轻松地向内容添加快速修复

  • 没有像整体系统那样高昂的许可费用

  • 快速功能开发

Zalando:使用 GraphQL 统一前端后端转变电子商务

Zalando 是欧洲领先的时尚电子商务巨头,在管理其网络和移动应用程序的众多后端服务方面面临着挑战。这导致数据交付不一致且效率低下,阻碍了开发人员和客户。为了解决这个问题,Zalando 将 GraphQL 实施为统一后端前端 (UBFF) 解决方案。

为此,Zalando 创建了一个所有前端团队都可以访问的 GraphQL API。开发人员可以通过使用 GraphQL 的声明式查询指定特定的数据要求来减少不必要的数据传输。Zalando 甚至使用 graphql-jit 定制了 GraphQL 实现,以进一步优化性能。

图片

结果,开发人员发现体验很流畅。他们享受更轻松的数据查找、有用的 GraphQL 工具和更快的部署。功能的交付速度加快。单一数据源减少了跨平台的重复工作。最重要的是,由于产品信息的单一真实来源,客户可以从网络和移动应用程序上获得一致的体验中受益。

客户体验基于一致性,即使不是最重要的因素。Zalando 的成功故事展示了 GraphQL 在统一数据访问和简化开发方面的潜力。两者都是提供一致的客户体验不可或缺的标准。对于任何希望克服管理多个后端服务和跨平台提供统一用户体验的挑战的组织来说,这都是一个强有力的示例。

Booking.com:联合 GraphQL 为可扩展且高效的数据系统提供支持

Federated GraphQL 使用的一个著名示例是 Booking.com 的统一数据访问层。

Booking.com 首先采用 GraphQL 对其基于 Perl 的系统进行现代化改造。这些系统导致了可扩展性问题,并且很难维护旧技术。一开始,Booking.com 通过将 GraphQL 添加到其基础设施中来探索它。他们从集中式方法开始,使用 GraphQL 来促进跨平台的数据访问。然而,他们很快就遇到了这种设置的可扩展性挑战。

Booking.com 承认需要一个更具扩展性的解决方案。因此,它转变为 Federated GraphQL 架构。这种转变使团队能够监督和管理他们的数据域并独立工作,从而形成更具可扩展性和更高效的数据系统。

由于迁移工作的结果,Booking.com 发现公司内部 GraphQL 的采用率大幅增加。他们现在每天处理数十亿个请求。他们还见证了 2023 年联邦流量增长了 600%,令人印象深刻。

除了这个主要用途之外,Booking.com 还使用 Hygraph 的 GraphQL 原生 CMS 为其技术组织者奖构建网站,并使用 Apollo Supergraph 来偿还技术债务。

Booking.com 继续利用 GraphQL 探索优化机会。尽管其中涉及复杂性,但他们的旅程强调了 GraphQL 在现代化遗留系统和促进开发人员赋权方面的变革潜力。

《纽约时报》:使用 React、Relay 和 GraphQL 重新设计网站

为了保持行业领导者的地位,《纽约时报》不断寻求增强数字体验的方法,向数百万订阅者提供屡获殊荣的内容。《纽约时报》在重新设计其网站时转向了 React、Relay 和 GraphQL。

在采用 GraphQL、React 和 Relay 之前,《纽约时报》的旧堆栈存在问题。前端应用程序难以应对复杂的数据需求。他们还遇到网络请求缓慢和管理组件状态的问题。这导致加载时间变慢。它还造成了负面的用户体验,使前端开发工作流程变得更加复杂。开发人员梦想有一个单一的存储库。它将用于创建和重用组件。它也是存储和获取数据的地方。

图片

图片

因此,开发人员彻底改造了他们的前端架构,并以 GraphQL 为骨干。它通过其精确的查询语言提供了一种灵活有效的获取数据的方法。React 是动态用户界面开发的核心。它启用了可重用组件并简化了状态管理。Relay 将 React 与 GraphQL 无缝集成。它隐藏了获取数据、缓存和管理状态的复杂性。

新堆栈为《纽约时报》提供了支持。它使他们能够构建响应速度快、功能丰富的应用程序。他们可以在保持可扩展性和性能的同时做到这一点。这种整合使《纽约时报》的前端架构变得和谐,为其多样化的内容提供了服务,并很好地吸引了广大受众。

纽约时报采用了现代前端技术,这使他们能够超越传统的架构限制。这些技术提高了性能并提高了开发人员的工作效率,使他们能够在数字平台上提供出色的用户体验。

快进至2024年

在 GraphQL 和 REST 之间进行选择不仅仅是一个偏好问题。在查看了如此多的示例之后,我们的目标是证明采用 GraphQL 可以改变您的产品开发模式并推动其向前发展。

当然,是否为您的项目选择 GraphQL 还取决于您的项目范围和可用的开发资源。这就是为什么要仔细规划、收集资源(例如 GraphQL 报告 2024)以及选择值得信赖的供应商(例如 Hygraph 的 GraphQL 原生 CMS)的原因

在可组合性方面,GraphQL 通过简化多种数据类型、API 和服务的整合发挥着至关重要的作用。联合技术有助于将各种来源的 API 轻松组合成统一的 API,为开发人员提供更符合人体工程学和更高效的方法。虽然无需 GraphQL 也可以实现可组合性,但其嵌套功能和降低的复杂性使该过程变得更加容易。借助 GraphQL,开发人员可以通过最少的输入实现多样化的数据组合,从而很好地适应行业向增强可组合性的转变。

Brayn Robinson

Hygraph 开发者关系主管

下一步是什么

GraphQL 提供了无与伦比的可能性。您可以使用它来制作动态且高效的应用程序。如果您正在寻找有关 GraphQL 使用情况的更多统计数据和见解,请不要错过我们的 2024 年 GraphQL 年度报告。