قادة الفكر

Graphql – تغيير وتحسين طريقة تواصل التطبيقات

mm
أضف Unite.AI إلى مصادرك المفضلة على Google

不会过多久,下一代人将在Fortnite大厅中购买加密货币并检查单位信托余额,在游戏之间。这将通过许多技术进步来实现。

我们今天讨论的是应用程序之间以及拥有它们的公司之间的数据传输方式(读取、更新、添加/删除)。应用程序编程接口(API)是定义此数据通信的体系结构,随着这些标准的发展,处理要求和数据存储要求变得不那么繁琐。

在“轻量级”资源利用方面的领导者是GraphQL,一种开源的数据查询和操作语言。其生态系统的基础是其规范和围绕它创建的一组工具。

它不是新东西——时间过得很快。Facebook在2012年开发了它,并仅用于内部移动应用程序开发。2015年,它被“开源”,如今它由GraphQL基金会(https://graphql.org/foundation/)负责,其进一步的开发。

那么,我为什么现在要写关于它的文章呢?典型的技术采用之路将遵循以下采用路径:1)爱好者/个人项目,2)跨多种语言的实现,3)在初创公司和小公司中的实现,4)中型公司和产品开发中的使用,5)大型企业和科技巨头。

GraphQL已经达到了第5级。目前,它被GitHub、Pinterest、Shopify 、Microsoft等公司使用,最近,截至2022年3月,Salesforce也在使用它。

在寻找一种更高效的方式来从Salesforce中获取数据时,我遇到了他们的GraphQL文档,并开始阅读和探索如何实现它。

它与传统的REST API有什么不同?

  • 其中一个主要优势是,使用GraphQL,您可以查询并仅返回特定的数据。如果您只想获取与特定客户事件相关的两个字段,那么这就是您所得到的。传统的REST API将返回与事件相关的所有字段,这可能有100多个字段。现在,您必须处理您不想要的所有数据。这被称为数据过度获取(under fetching也是一个问题)。
  • 上述内容使GraphQL在返回数据时比其他API方法更快。
  • GraphQL是一种强类型语言,这意味着代码错误在程序运行之前就会被捕获,而不是在运行期间。
  • 围绕GraphQL构建了一套很好的工具,使其对开发人员非常友好。
  • GraphQL只有一个端点,而REST API有多个端点。这意味着您可以在单个请求中获取所有数据。

硬币的两面:请求者(客户端)和提供者(GraphQL主机)

到目前为止,我已经从数据“请求”角度研究了GraphQL。例如,Salesforce或Microsoft等公司已经设置了GraphQL API,您可以使用它来查询和操作数据(读取、更新、添加)。

如果我们想在客户门户中包含来自Salesforce的客户事件数据,最有效的方法是通过GraphQL查询从门户到Salesforce GraphQL服务器请求确切的数据。您将得到您想要的确切数据,无需过度或不足获取,因此无需额外的处理或数据存储。

硬币的另一面是设置GraphQL架构的组织,以便客户能够高效地访问他们想要的数据。

在构建GraphQL API时,组织正在创建一个模型,该模型将所有系统集成到一个模型中。它统一了这些系统,一旦完成,就消除了底层系统的复杂性。完成后,通过API查询数据变得毫不费力。

当我比较应用程序或提供者时,我会查看他们为我提供什么功能来获取我的数据。我不想通过电子邮件或依赖于僵化的预定义报告来获取数据。我想能够以灵活、及时的方式“插入”我的数据来查询它。如果两个应用程序/提供者在其他比较点上相似,并且一个提供REST API或GraphQL API,我绝对会选择具有API的那个。

ماركوس لوفلاند، RP PA Analyst Developer في Maitland Fund Services، يكتب للجمهور "IT crowd"، وينظر إلى الأمام في واجهات برمجة التطبيقات (API) ويركز على هيكل واجهة برمجة التطبيقات GraphQL.