[更新]API弃用和版本在Shopify:你需要知道的

Api弃用

在我们介绍之前Shopify的API版本控制在2019年4月,应用程序只能与我们最新和最好的api进行交互。当我们向商家发布功能时,与这些功能相关的api也在不断发展,应用程序必须快速适应新的工作方式,以确保它们继续工作。

这种开发人员体验并不理想。我们并不清楚如何去发现你的应用是否会在某一天出现问题,而这些改变也会影响到你自己的开发路线图。为了解决这个问题,我们引入了API版本控制来为我们的版本提供稳定性和计划节奏。

当我们接近发布版本的一年标志时,让我们回顾一下它是如何工作的,以及在2020年你需要注意什么。

版本控制如何工作

首先,让我们回OB欧宝娱乐APP顾一下Shopify API版本控制的基础知识。

1.我们每季度发布一个版本

通常,这些发布发生在1月1日、4月1日、7月2日和10月1日左右。版本以年-月格式命名(例如:2020-01),确保始终容易确定版本变得稳定的时间,以及比较多个版本的时间线。

2.应用程序通过在请求URL中指定API的特定版本来发出请求

随着Shopify api的不断发展,应用程序可以选择一个稳定的版本进行构建以确保API契约保持不变。请记住,这意味着在您的目标版本之后发布的任何功能将无法访问,直到您更新您的请求URL。

3.我们不断向商家发布新功能

为了在不影响最新稳定api的情况下发布特性,我们使用了候选版本的概念。候选发行版只是下一个API版本,并且可以针对使用相同的年-月格式的请求。在其中,您将找到刚刚发布的最新特性集。由于候选版本是不断发展的,你应该避免在应用的日常API使用中使用它。

为了获得稳定性和访问最新功能的好处,我们建议将应用程序的日常请求保持在稳定版本上,并且只将处理新发布功能的特定调用移动到发布候选版本。

4.不要求特定版本的应用程序将提供最旧的支持版本

这允许现有的应用程序在我们发布版本控制时继续运行,而不必更新到新的url。这个概念也适用于显式调用不再支持的版本的应用程序。

例如,如果您的应用程序在不受支持后继续请求2019-07,则将为您提供最旧的支持版本,即2019-10。

5.版本支持一年

取消对版本的支持使我们能够保持敏捷,并做出必要的更改,以便长期为我们的商家和Shopify平台提供最好的服务。虽然版本支持1年,但这意味着应用实际上只有9个月的时间来适应这些新变化,并在旧的行为不再可用之前利用新功能。

现在我们已经了解了API版本控制在Shopify如何工作的基础知识,让我们回顾一下2020年您需要知道的一些关键信息。

你可能还喜欢:如何在Shopify应用商店获得更多应用下载量

不支持的版本

请注意随着人们对COVID-19及其对世界各地社区影响的关注不断加深,我们知道合作伙伴和商家正在进行调整,以继续顺利开展业务。这就是为什么我们决定将4月1日版本的移除推迟到2020年7月2日

这意味着在2020年4月1日,我们的api将发生以下变化:

  • 2020-04版本将变得稳定并准备好一般使用。

2020年7月2日,将发生以下情况:

  • 2019-04和2019-07版本将不受支持。
  • 没有指定API版本的请求将被服务于2019-10 API版本
  • 2019-04或2019-07版本的请求将不再收到这些版本。相反,这些请求将推迟到2019-10年。
  • 设置为2019-04或2017-07的webhook将以同样的方式向前推进。

最重要的是,2019-10 API版本将成为默认版本,包括破坏性API更改。如果你的应用程序发出的请求可能会在2019-10年中断,你需要采取行动,在2020年7月2日之前迁移这些请求。如果不这样做,将导致请求失败和应用程序崩溃。

为了尽量减少对商家的影响,如果您的应用程序在7月2日之后继续使用不受支持的api, Shopify可能会通知商家您的应用程序不再受支持。在某些情况下,我们可能会从Shopify应用商店中删除应用程序。

请注意,此弃用不影响私人的应用

让我们深入了解一下2019-04赛季到2019-10赛季的每一个突破性变化。

突发的变化

以下是4月份引入的突破性变化。如果你的应用使用了以下任何一种,你就需要更新以避免应用崩溃。

1.分页

基于页面的分页已被删除,并已被基于光标的分页所取代。

我们的工程团队撰写了关于此更改的来龙去脉,以及如何迁移调用的文章。你可以在我们的网站上了解更多的原因工程的博客,以及本文中一般的相对分页来自Partners的很棒的博客文章

总结:停止使用页面参数。使用page_info代替。

2.从收集中删除了特色字段

特征字段已从收集端点中删除。

即使不使用这个特定字段,REST也会默认返回所有内容。因此,在使用collect端点时,您将收到关于此弃用的通知。

总结:将请求URL更新为API版本2019 - 07或更高版本。

3.添加到webhooks的GraphQL管理员ID

我们添加了graphql_admin_idwebhook有效负载,使得在响应中调用GraphQL更容易,并且与我们的REST有效负载更加一致。这在旧版本的Rails应用程序中造成了问题。即使你没有使用Rails,定期更新你的webhook API版本也是一个很好的做法,以确保当你的当前版本不受支持时,你的有效负载不会改变。

总结:更新你的webhook API版本到API版本2019 - 07或更高版本。

4.交付配置文件的更改

activatedCarrierServices字段与多产地运输不兼容,已被删除。

使用availableCarrierServices字段。它包括承运人服务和适用的国家。

总结:OB欧宝娱乐APP开始使用availableCarrierServices如果您需要运营商服务的信息。

5.库存

2018年3月,直接修改变体库存已被弃用。在2019-10年,我们将取消对所有应用程序上遗留库存行为的支持。

这意味着应用程序将无法设置inventory_quantityinventory_quantity_adjustment直接在产品变体上。应用程序也不能在没有指定的情况下创建任务location_id,或退款和补货,而无需说明location_id

总结:迁移到支持多个位置

紧跟变化

了解即将到来的变化是一个良好的开端,但在许多情况下,在整个应用程序中识别单个中断请OB欧宝娱乐APP求可能很困难。为了帮助缩小范围,我们引入了以下工具,这些工具会根据您的API使用情况自动生成数据。

1.API的健康

你的合作伙伴仪表板包含一个应用程序API运行状况报告,它展示了会影响你的确切变化。在其中,您将找到特定的端点、迁移指南的链接,以及最后检测到的已弃用请求的时间戳。

2.弃用头

在您的应用程序中,您还应该通过记录的存在来监视传入的更改X-Shopify-API-Deprecated-Reason头。此头被添加到已弃用的请求中,并且将在9个月内不受支持。您应该根据头中返回的链接更新请求。

3.电子邮件

每个应用程序都有一个关联的开发者紧急邮件我们用它来通知您待定的弃用。在这些电子邮件中,您将发现与API运行状况报告非常相似的信息。由于私人应用程序不与合作伙伴帐户相关联,这是这些类型的应用程序被告知将影响它们的变化的主要方式。

准备好迎接2020年7月2日吧

我们认识到,我们给平台带来的每一次改变都是我们要求合作伙伴做出的努力。有了版本控制,我们希望这个过程更加可预测,并且不那么混乱。

今年7月,确保你的应用程序准备好了我们的第一个版本弃用,在那里我们告别2019 - 042019 - 07,在哪里?2019 - 10将成为最老的支持版本。

请查看2019-10版本说明获取完整的更改集,或者合作伙伴仪表板看看哪些变化对你有影响。

主题:

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

了解更多