GraphQL vs REST: Shopify合作伙伴如何提高性能和可靠性

Graphql vs rest

作为高级业务流程顾问费雪技术Rich Borek为自己始终走在开发曲线的前面而感到自豪。密切关注趋势并寻找领先优势有助于公司业务保持竞争力,并使其客户的业务顺利运行。

Fisher Technology成立于2006年,是北美无代码平台的分销商。双酚a平台业务流程自动化与集成平台应用程序平台,一个快速应用程序开发(RAD)平台。作为Shopify Plus的技术合作伙伴,他们使Shopify Plus商家能够与会计、CRM和ERP系统集成,并同步其庞大的客户和产品数据库。

在处理如此大量的数据时,Rich亲眼目睹了Fisher Technology客户的增长如何影响对Shopify REST管理API的调用,该API允许开发人员为Shopify管理构建应用程序和集成。看着这种增长加速,里奇知道他们会赶上API的极限。

“我知道它会来,我只是不知道这将是去年,”里奇笑着说。

有些事情必须改变。为了确保自己的业务和客户保持领先地位,他发现了一个新的机会GraphQL管理API。在本文中,Rich分享了他从REST API切换到GraphQL API的经验,以及它对他的业务和他的Shopify Plus客户的业务的影响。

为Shopify商家构建应用程序

无论您是想为Shopify App Store构建应用程序,提供私人应用程序开发服务,还是正在寻找增加用户基础的方法,Shopify合作伙伴计划都将为您的成功奠定基础。免费加入并访问教育资源、开发人员预览环境和经常性收入分享机会。

报名

REST API的限制

对于Rich和Fisher Technology团队的其他成员来说,rest管理API的局限性开始让他们感到烦恼。达到极限是有后果的——试图这样做在极限状态下打电话会得到一个HTTP请求太多错误。所有请求的数据都不会返回,应用程序必须在重新尝试调用之前暂停。对Rich来说,这意味着他的ERP集成和客户的商店之间没有任何东西是同步的。

“当你达到极限时,你就完了。我们的系统开始失灵,警铃OB欧宝娱乐APP响起,邮件纷飞。这很糟糕,”里奇警告说。

Fisher Technology每天处理数万美元,如果他们的集成中断,将导致库存或客户数据同步的延迟。由此产生的差异可能会导致从会计记录不正确到客户服务团队缺乏对购买的洞察力等一切问题。这是一笔糟糕的生意,所以Rich和他的团队不惜一切代价避免达到API上限。

最大的一次差强人意发生在2015年。他们的一个客户经营着一个拥有数百种产品的商店,每种产品都有五张图片和十几个元字段,这意味着仅仅一个产品就需要15到18个API调用。这是团队第一次意识到他们可以打破调用限制,并且需要变通以避免灾难。

里奇说:“我告诉客户,上传库存需要几天时间。“我故意延迟了我的代码,这样我的集成只会每隔几分钟调用一次API,从而有时间补充API桶。”

这种聪明的计划意味着他们没有超过通话限制,但也很接近。随着他们的持续增长,里奇知道他们需要一个新的战略来应对即将到来的挑战。

你可能还喜欢:新的GraphQL管理API如何帮助您管理库存和位置

到达临界点

到目前为止,里奇的变通办法使他们避免了任何重大问题,但他的临时解决方案不会永远有效。2018年,一位七年的忠实客户向团队提出了一个大要求:使用液体向客户显示元字段。他们的客户希望在客户登录时在客户屏幕上向客户展示购买价值和关键指标。为此,他们在Customer Object上使用元字段,并向Customer Theme添加Liquid标签以进行表示。

这个团队知道,为了能够完成这个项目,他们需要创新。Rich一直依赖REST Admin API来完成这类工作,但在几年前差一点失败之后,这一次它将不再适用。

“元字段总是一对一的,这让我很难受,”里奇说。“每个客户取5个元字段;有4万个客户,那就是超过20万个API调用。这要花一个星期才能跑完!你想让我报告事务性的数据吗?这是不可能的。”

幸运的是,Shopify联合2018,我们的年度合作伙伴和开发者大会就在拐角处。在Shopify Unite 2018上,我们宣布了许多开发者可以使用的令人兴奋的新方法GraphQLShopify。受到演讲的启发,Rich很兴奋地想了解更多关于GraphQL的知识。

GraphQL是一种查询语言和运行时系统,它在单个端点中返回所请求的数据(称为查询和突变),而不是像REST那样为每个资源对象暴露不同的端点。您可以构建只返回所需数据的查询,而不是过度获取数据。

对于Rich来说,这意味着他可以使用该模式构建一个查询,该查询在40,000个API调用中返回相同的数据,而不是进行200,000个API调用,从而破坏集成。尽管他的团队以前从未以这种方式构建过集成,但其好处超过了学习曲线。

里奇带着一个计划离开了Shopify Unite。

你可能还喜欢:Shopify GraphQL学习工具包

转到GraphQL管理API

Rich和他的团队的第一步是找出GraphQL管理API是否以及如何作为BPA平台的解决方案。作为一家不断同步客户记录和库存的企业,Rich必须首先了解GraphQL Admin API与REST Admin API的执行方式究竟有何不同。

“我想弄清楚‘成本’是什么,比如获得订单或元字段需要多少成本?”

就像任何学习新编程语言的开发人员一样,他需要一些帮助。他靠在椅子上。Shopify GraphQL学习工具包还有第三方工具,比如失眠邮递员在BPA平台上测试GraphQL API。

“乍一看,GraphQL看起来比实际复杂得多,但这些工具改变了我使用Shopify API的方式。”

乍一看,GraphQL看起来比实际复杂得多,但这些工具改变了我使用Shopify API的方式。

丰富Borek

正是在这个学习过程中,里奇有了他的顿悟时刻。他开始OB欧宝娱乐APP能够在一个请求中获取多个不相关类型的对象。有了这些新知识,Rich很快就会看到GraphQL Admin API对他的集成带来的巨大影响。

使用GraphQL管理API查找成功

既然Rich已经掌握了使用GraphQL的技巧,他和他的团队就可以轻松地建立BPA平台,为他们尊贵的客户交付集成。从一开始,GrapOB欧宝娱乐APPhQL就明显产生了巨大的积极影响——集成工作得非常出色,从三个字段中提取数据,而不是进行成千上万的API调用。

里奇为他的客户建立了一个通话限制的集成,这不会让他出汗。通过在40,000个客户记录中进行200,000个API调用,使用GraphQL Admin API构建的集成能够通过每个客户的一个API调用(总共40,000个API调用)获得相同的请求—改进了五倍。这是通过GraphQL进行更有效的API调用的能力实现的。Rich不再需要在调用之间停止,因为GraphQL API调用限制的更改使得连续操作直到完成成为可能。

“我只下载了我需要的三个字段,而没有获得整个客户记录。”

为了确保Shopify管理中的所有更改与客户的ERP相匹配,BPA平台有一个程序,每十分钟推送一次更新。每周一次,所有数据被批量下载,并在Shopify管理和ERP之间同步,以确保没有遗漏。使用GraphQL,每周批量下载和例行更新都可以完美地进行。该解决方案允许他们在几个小时内执行所有40,000个客户的完全同步,而不是以前需要两三天的时间。

你可能还喜欢:决心与奉献:两位企业家如何改变了墨西哥的电子商务行业

GraphQL对业务有何帮助

自从第一次集成GraphQL管理API以来,Fisher Technology的成功就没有停止过,他们的新开发方法对他们的业务和他们可以向客户提供的服务承诺产生了巨大的影响。下面是GraphQL影响的三个主要领域。

1.性能

通过切换到GraphQL管理API, Fisher Technology可以为他们的客户提供更快的集成。通过在Shopify商店和ERP之间更快地同步客户数据库,Fisher Technology的集成现在表现更好。

这也影响了团队的信心。当客户询问Rich是否可以构建集成时,他会在客户的存储和数据库中回顾30到90天,查看他们的记录和订单数量,然后平均这些数据,以了解他们必须提取的数据量。

“我的工作是测量体积,”里奇说。“当我看到这些庞大的数据时,GraphQL让我放松了一点。”

性能的提高使他的集成能够在客户的商店和他们的ERP系统之间保持数据同步,而不管数据量是多少。

2.敏捷性和更小的有效载荷

通过切换到GraphQL管理API, Fisher Technology可以支持更大的客户端,并花费更少的时间来找出避免超出REST管理API调用限制的技巧或策略。

以前,Rich必须一次更新一个客户的库存,并且他将保持API调用运行,直到他在两分钟的窗口内达到限制。

现在,他们不是一次干掉一个顾客,而是干掉几百个顾客。通过GraphQL Admin API, Rich可以一次更新100到500条客户记录。他现在正试图突破GraphQL的调用限制,以了解他能在多大程度上使用该工具,以及它如何进一步为某些客户带来好处。

“每次我打电话,我就是达不到极限。和我们的客户在一起真是个好地方。在GraphQL上运行我们的集成,我不再需要担心API负载。”

在GraphQL上运行我们的集成,我不再需要担心API负载。

丰富Borek

3.环境变化的影响较小

随着Shopify多年来的成长和发展,api也在不断发展。虽然api的更新和平台的变化可能会让一些开发人员担心它会如何影响他们的应用程序或集成,但使用GraphQL使Rich不那么担心环境的变化会影响他的集成。

“我不知道从头开始构建的应用程序如何处理它;引入或删除某些内容,并且必须在代码中清除以找到它。使用GraphQL,我只需要客户姓名、电子邮件或电话号码——我可以查询这三个字段,每次执行代码时,我只获得这三个字段。”

Rich不仅因为知道他的团队在重新构建集成和寻找代码中的错误上花费的时间更少而感到高兴,而且他们的解决方案更具弹性。

“您可以在客户对象上添加、更新或增加字段,代码永远不会中断,因为我只要求这三个字段,”他分享道。

这些改进加在一起。Rich能够利用他对集成稳定性的信心来增加客户的信任和留存率。

“如果客户在Shopify上看到一个新的更新,并担心这会影响他们的整合,我们可以充满信心地给他们一个是或否的答案。”

你可能还喜欢:新加坡的Jumpstart商业如何席卷全OB欧宝娱乐APP球

Fisher Technology与GraphQL的未来

Fisher Technology现在是GraphQL的倡导者,他们希望推动使用GraphQL中的api构建的集成能力。他们正在与一些客户交谈,以了解他们的梦想场景,以及是否可以建立这些场景,并从实时更新开始。OB欧宝娱乐APP

“我们希望商店的库存能够随着交易的进行而更新。我们不希望在ERP和客户商店中更新数据的时间延迟超过几分钟,”Rich分享道。

除了使速度成为其整合合作伙伴的竞争优势之外,他们还在追求建立商店之间的整合,使全球客户的库存更容易。

“我们有一个客户在美国和加拿大拥有独立的商店,我们正在考虑使用GraphQL在它们之间建立一个巨大的集成。我们未来构建任何集成的目标都是始终使用GraphQL,除非不可能。”

我们今后构建的任何集成的目标,除非不可能,都是始终使用GraphQL。

丰富Borek

开始使用OB欧宝娱乐APPGraphQL

切换到GraphQL管理API对Fisher Technology来说是一个三管齐下的成功。它允许他们构建更可靠的集成,为客户更快地执行,在更短的时间内保持客户记录同步,并花费更少的时间来响应平台或API更新。

虽然学习曲线可能看起来很陡峭,但里奇希望自己能早点这么做。

“我会不知疲倦地说服任何人使用它,”他强调说。“去做吧。如果您现在正在使用REST api,并且每天处理数百个订单,而您只需要20个字段,那么您可能会付出代价。或者,如果你是一名应用开发者,为数百或数千家商店开发一款应用,你为什么要承担额外的负担?买你需要的,只买你需要的。”

为Shopify商家构建应用程序

无论您是想为Shopify App Store构建应用程序,提供私人应用程序开发服务,还是正在寻找增加用户基础的方法,Shopify合作伙伴计划都将为您的成功奠定基础。免费加入并访问教育资源、开发人员预览环境和经常性收入分享机会。

报名

借助Shopify合作伙伴计划发展您的业务

了解更多