Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GraphQL-to-REST API Connectors是Apollo的“最伟大的成就”

GraphQL-to-REST API Connectors是Apollo的“最伟大的成就”

作者头像
云云众生s
发布于 2024-10-17 01:22:07
发布于 2024-10-17 01:22:07
20201
代码可运行
举报
文章被收录于专栏:云云众生s云云众生s
运行总次数:1
代码可运行

Apollo GraphQL Connectors 提供了一种将 REST API(以及即将推出的更多 API)转换为 GraphQL 语言的方法。

译自 GraphQL-to-REST API Connectors Is Apollo's ‘Biggest Thing’,作者 B Cameron Gain。

纽约——在 Apollo GraphQL 峰会 2024 上发布的 Apollo GraphQL Connectors 标志着 Apollo 在简化 API 集成 方面迄今为止最重要的创新之一。

随着针对 REST API 的 Apollo Connectors 的推出,开发人员可以逐步或一次性地将 REST API 集成到 联邦 GraphQL 架构中。是的,您以前可以将 REST API 与 GraphQL 集成,但这涉及手动实现代码——我们可以说这是一个繁琐的过程。

[@apollographql]´s[@debergalis]: «Connectors 真正改变了你和你的团队对[@GraphQL]的看法。这是我们做过的最伟大的事情。»[#graphqlsummit][@thenewstack][pic.twitter.com/bsa6Y8SZbB]— BC Gain (@bcamerongain)

正如 Apollo GraphQL 的首席技术官兼联合创始人 Matt DeBergalis 所描述的那样,作为“我们做过的最伟大的事情”,Connectors 提供了一种将 REST API(即将推出更多 API)转换为 GraphQL 语言的方法。以前没有Connectors ,为了实现这一点,您需要一小段称为 GraphQL 服务器中间件代码。“您只需为每个 API 创建一次,但它需要复杂、具体的知识才能完成,”DeBergalis 说。

消除复杂性

换句话说,如下所述,如果没有Connectors ,该过程将更加耗时。

“Connectors 消除了这种复杂性。它们通过消除与塑造 GraphQL 层相关的大部分前期设计工作来简化流程。Connectors 采用更务实的做法,无需再编写服务器,”DeBergalis 说。“这也摆脱了额外的网络跳转、性能成本以及与在生产环境中运行服务器相关的一切。”

Connectors 旨在减少 DevOps 团队成员可能需要编写的代码量,允许将所有 API 相对快速地组合到 Apollo 超图中。“这种方法释放了巨大的价值,因为许多企业都有 API,但它们的价值取决于它们的使用难易程度,”DeBergalis 说。“这些 API 的可用性如何?它们的开放程度如何?它们可以多快组合在一起?能够做到这一点的公司将是那些能够更快地交付和创新的公司。”

正如 GraphQL 已成为连接 REST API 的现代、基于标准的方式一样,GraphQL 最终也不会取代 REST API。REST API 还具有 GraphQL 可能无法提供的功能。虽然两者都支持从后端系统获取数据,但它们解决的是不同的问题,并且从不同的角度处理数据。

也就是说,GraphQL 提供了一种强类型的架构定义语言来描述跨任意数量系统的数据,这种方式对客户端来说既直观又实用。相比之下,REST 鼓励采用更加面向资源的方法来组织和部署服务,通常沿着域边界。它更侧重于对实体关系进行建模,而不是以需求驱动的方式向客户端提供数据。

“我们来这里不是为了取代 REST……我们真的不是说 GraphQL 比您现有的 API 更好。它不比 gRPC 好。它不比 REST 好,”DeBergalis 在其 GraphQL 峰会 2024 的主题演讲中说道。“这不是重点。它使这些东西变得更好,对吧?”

Apollo 的 Apollo Federation(用于构建联邦 GraphQL 基础设施)提供了一个带有 GraphQL 的联邦图层,以便抽象 REST 端点的复杂性。图层为所有操作公开了一个端点,而不是数百个独特的 REST 端点,并且涉及的编程更少。随着Connectors 的发布,这种抽象功能比以前集成每个 REST API 所需的编码和手动输入要少得多。

更具体地说,正如 Apollo 的 Dylan Anthony 在一篇 博文 中所说,在Connectors 发布之前,开发人员在将 REST 服务添加到联邦 GraphQL API 时必须采取许多额外的步骤:

  • 确定一种编程语言和一个兼容 Apollo Federation 的 GraphQL 框架。
  • 部署一个新的子图服务,包括监控、自动扩展和负载均衡,它将位于路由器和 REST API 之间。

Anthony 描述了每次更改 REST API 时的情况:

  • 必须设计底层 REST 数据的子图模式。
  • 必须使用所选编程语言编写与 REST API 的绑定。
  • 必须编写利用这些绑定的解析器。
  • 必须部署子图服务。
  • 必须组合和发布用于更新路由器的模式。

Anthony 描述了使用 Apollo Connectors 如何减少每次迭代:

  • 设计底层 REST 数据的子图模式。
  • 组合和发布用于更新路由器的模式,以便路由器可以直接与 REST API“对话”:

Coinbase 的观点

然而,世界不仅仅只有 REST API。以加密货币交易平台提供商 Coinbase 为例,Connectors 未来可能会被使用,但 Coinbase 的后端服务需要的是 gRPC 而不是 REST API Connectors。

“由于我们的规模,我们需要等待一段时间才能采用 Connectors,”Coinbase 的工程经理 Stephanie Saunders 在大会期间告诉我。将任何类型的代码部署到 Coinbase 的模式中都具有挑战性,因为它需要 15 到 20 分钟才能完成部署。“如果部署的Connectors 出现问题,回滚需要很长时间——20 分钟的高容量错误是不可接受的,”Saunders 说。

Saunders 说,在考虑扩展阈值时,使用 Connectors 的方法可能是有益的。“例如,如果我们模式的某个部分没有高吞吐量,只要缓存策略足够,直接进行 API 调用可能是有意义的,”Saunders 说。“但以我们目前的吞吐量,它不一定会解决我们所有的问题——你总是需要一台服务器。”

Apollo 之所以为 REST 设计 Connectors,是因为它仍然是最流行的 API 格式。“我们的愿景是将每个 API 都引入图中,”DeBergalis 说。除了寻求涵盖 gRPC 或 Thrift 等现代替代方案外,Connectors 最终还应扩展到 SOAP 和 XML-RPC 等传统 API。“一些公司甚至在大型机上构建图,”DeBergalis 说。

[@GraphQL] 越能自动完成 API 的编排联合,开发人员就越不需要担心管理基础设施,从而可以专注于他们的工作。这是我在 [#GraphQLSummit] 和 [@apollographql] 首席技术官 [@debergalis] 的主题演讲中获得的收获之一。[pic.twitter.com/ziqSfr5QUm]—— BC Gain (@bcamerongain)

最终目标是让开发人员能够自由地减少手动拼接 API 的时间。Connectors 允许直接实现 GraphQL 以协调 GraphQL 层下的 API,因此他们可以将更多时间花在创造性的开发工作上。DeBergalis 说,在生物研究等纯科学领域,情况也是如此,因为生物研究已经变得更加依赖计算。

“软件已经彻底改变了生物研究。这是一个有趣的类比,因为虽然电子商务公司的专业软件开发人员可能是专家,但想想研究生——他们知道如何编写软件,但他们不会整天研究最新的 API 设计模式,”DeBergalis 说。“他们还有更重要的工作要做……因此,如果我们能让更多的人编写有用的软件,我们就能发现新药,解开宇宙的奥秘——这很酷。”

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-162,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Apollo:GraphQL现在可以轻松连接到REST API
API福音!Apollo发布REST API连接器,GraphQL轻松集成!Router 2.0性能飙升10倍,GraphOS免费计划助力云原生微服务和SaaS产品编排。告别API蔓延,拥抱声明式GraphQL,加速AI集成,标准护航,DevOps效率UP!
云云众生s
2025/03/16
1460
Apollo:GraphQL现在可以轻松连接到REST API
GraphQL Federation:您平台战略中缺失的 API
平台工程 已成为释放云原生架构中开发人员速度的关键学科。从使用 Terraform 和 Kubernetes 配置和编排基础设施到使用无头 CMS 提供的前端微文案,工程团队正在选择集中式平台来维护其架构的核心组件。这些工具不仅消除了冗余任务,还使产品工程团队能够更快地交付功能、以更少的工作量进行实验,并减少对基础设施的关注,更多地关注业务需求。
云云众生s
2024/05/27
1340
GraphQL Federation:您平台战略中缺失的 API
REST API 还是 GraphQL?
说到 API 设计,GraphQL 和 RESTful API 是当前最主流的两种选择,各自有其独特优势与挑战。
萌萌哒草头将军
2025/04/24
1200
REST API 还是 GraphQL?
安息吧 REST API,GraphQL 长存
即使与 REST API 打交道这么多年,当我第一次了解到 GraphQL 和它试图解决的问题时,我还是禁不住把本文的标题发在了 Twitter 上。
疯狂的技术宅
2019/03/27
2.9K0
安息吧 REST API,GraphQL 长存
GraphQL API 的新趋势:驱动数据交换的未来技术
自 2015 年 Facebook 推出 GraphQL 以来,它迅速成为向应用程序和其他服务提供数据的强大又灵活的替代方案。最近一份 Gartner 报告预测,尽管仅有 10%的企业在 2021 年将 GraphQL 作为其内部数据层实施,但到 2025 年这个数字将增加到全球企业的 50%以上。
API 小达人
2023/07/24
3730
GraphQL两年实战避坑经验
本文作者分享了在生产环境中使用 GraphQL 的一些经验和解决方法,并给出了一些构建实用 GraphQL 查询和变更(Mutation)的建议。
深度学习与Python
2020/07/27
1.1K0
GraphQL两年实战避坑经验
【API架构】REST API 行业辩论:OData vs GraphQL vs ORDS
本文比较了标准 API 和服务,以通过 Internet 查询数据以进行分析、集成和数据管理。
架构师研究会
2022/05/25
2.4K0
【API架构】REST API 行业辩论:OData vs GraphQL vs ORDS
PayPal大规模采用GraphQL的探索和实践
我们通过构建收银台体验开启了我们的 GraphQL 采用之旅。当 我们用 GraphQL 构建收银台应用程序 时,我们看到了采用 GraphQL 的巨大好处,这成为我们的指路明灯。我们构建了更多的应用程序,提供了基础设施支持,发布了一个公共 GraphQL API,并在全公司提供了培训和学习材料。我们还建立了一个标准机构,提供了一个 GraphQL 工具 fanny pack,并构建了示例应用程序来帮助团队开始使用 GraphQL。
深度学习与Python
2021/11/10
3.3K0
PayPal大规模采用GraphQL的探索和实践
API 架构风格抉择:SOAP、REST、GraphQL 和 RPC 的特性、优势与局限
两个独立的应用程序需要一个中介来相互通信。因此,开发人员通常会构建桥梁——应用程序编程接口 (API) ——以允许一个系统访问另一个系统的信息或功能。
架构精进之路
2025/04/16
2850
API 架构风格抉择:SOAP、REST、GraphQL 和 RPC 的特性、优势与局限
GraphQL 实践与服务搭建
大概率你听说过 GraphQL,知道它是一种与 Rest API 架构属于 API 接口的查询语言。但大概率你也与我一样没有尝试过 GraphQL。
愧怍
2022/12/27
5.6K0
GraphQL 实践与服务搭建
怎样使用 apollo-link-state 管理本地数据
当一个应用的规模逐渐扩张,其所包含的应用状态一般也会变得更加复杂。作为开发者,我们可能既要协调从多个远端服务器发送来的数据,也要管理好涉及 UI 交互的本地数据。我们需要以一种合适的方法存储这些数据,让应用中的组件可以简洁地获取这些数据。 许多开发者告诉过我们,使用 Apollo Client 可以很好地管理远端数据,这部分数据一般会占到总数据量的 80% 左右。那么剩下的 20% 的本地数据(例如全局标志、设备 API 返回的结果等)应该怎样处理呢? 过去,Apollo 的用户通常会使用一个单独的 Red
企鹅号小编
2018/02/02
2.5K0
怎样使用 apollo-link-state 管理本地数据
基于GraphQL的微服务实践-spring cloud 入门教程
通常,与 REST 相比,GraphQL 被认为是一种革命性的 Web API 设计方式。但是,如果您仔细研究该技术,您会发现它们之间存在很多差异。GraphQL 是一种相对较新的解决方案,已于 2015 年由 Facebook 开源。今天,REST 仍然是最流行的用于公开 API 和微服务之间的服务间通信的范式。GraphQL 会在未来超过 REST 吗?让我们来看看如何使用 Spring Boot 和 Apollo 客户端创建通过 GraphQL API 进行通信的微服务。
jack.yang
2025/04/05
1770
基于GraphQL的微服务实践-spring cloud 入门教程
GraphQL是API的未来,但它并非银弹
我认为,GraphQL 将改变世界。将来,你可以使用 GraphQL 查询世界上的任何系统。我在创造这样的未来。那么我为什么要对使用 GraphQL 进行辩驳呢?我个人最讨厌的是,社区一直在宣传 GraphQL 的好处,而这些好处却非常普通,并且与 GraphQL 实际上没有任何关系。如果我们想推广采用,那么我们应该诚实,应该摘掉有色眼镜。这篇文章是对 Kyle Schrade 的文章“为什么使用 GraphQL”的回应。这并不是批评。这篇文章是一个很好的讨论基础,因为它代表了我在社区中经常听到的观点。如果你读了整篇文章,当然这会花一些时间,你就会完全理解,为什么我认为 Kyle 的文章应该改名为“为什么使用 Apollo”。
深度学习与Python
2020/12/18
2.2K0
架构师该如何为应用选择合适的API
架构师的主要活动是做出正确的技术决策。选择合适的API是一项重要的技术决策。那么今天就看看API的选择问题。
yuanyi928
2020/06/17
1.8K0
GraphQL与OpenAPI:数据治理的优缺点
一位财富 50 强公司的 CTO 评估了 OpenAPI 和 GraphQL API 标准的优缺点,以及它们与数据治理的相关性。
云云众生s
2024/08/13
2820
为什么我劝你放弃了Restful API?
REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。
开发者技术前线
2020/11/23
3.3K0
为什么我劝你放弃了Restful API?
Coursera 的 GraphQL 之旅
Coursera 的客户端开发人员钟情于 GraphQL 的灵活性,类型安全性和良好的社区支持,我们对 GraphQL 的喜爱众~所~周~知。然而,我们并没有过多讨论后端开发人员是如何看待 GraphQL 的,因为他们大多数实际上并不需要考虑 GraphQL。
疯狂的技术宅
2019/03/27
1.3K0
Coursera 的 GraphQL 之旅
4种主流的API架构风格对比
本文讨论了四种主要的 API 架构风格,比较它们的优缺点,并重点介绍每种情况下最适合的 API 架构风格。
深度学习与Python
2021/01/21
2.5K0
为什么GraphQL是API的未来[每日前端夜话0x50]
自从 Web 开始迅猛发展,对程序员来说开发 API 是一项很艰巨的任务。我们开发 API 的方式必须随着时间的推移而发展,以便我们始终可以开发良好、直观且设计良好的API。
疯狂的技术宅
2019/04/23
1.7K0
为什么GraphQL是API的未来[每日前端夜话0x50]
REST在许多API使用场景中仍然优于GraphQL
在过去的几年里,我一直听到 GraphQL——一种用于 API 的查询语言,允许客户端请求特定数据——是 API 的未来。它的炒作来自清晰且引人注目的价值主张。也就是说,它可以帮助您获取所需的确切数据并从单个请求访问多个资源,从而节省您的时间、金钱和带宽。
云云众生s
2024/10/18
3870
相关推荐
Apollo:GraphQL现在可以轻松连接到REST API
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验