Apollo GraphQL Connectors 提供了一种将 REST API(以及行将推出的更多 API)调度为 GraphQL 言语的措施。
译自GraphQL-to-REST API Connectors Is Apollo's ‘Biggest Thing’,作家 B Cameron Gain。
纽约——在Apollo GraphQL 峰会 2024上发布的Apollo GraphQLConnectors 象征着 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 说。“他们还有更垂危的责任要作念……因此,要是咱们能让更多的东说念主编写灵验的软件,咱们就能发现新药,解开天地的玄机——这很酷。”