不同Parse版本上的 GraphQL 查询和突变

随着 Parse 的不断发展,它的某些方面也在发生变化,以获得更好的性能、更好的兼容性和更简便的开发。
其中一个方面就是图形化查询语言(GraphQL)支持,从 Parse 3.5.0 逐步发展到最新的 3.9 版本。

在 Back4app,我们有三个主要版本实现了 GraphQL 查询和突变中的变化,具体如下:今天,我将带您了解这些版本之间的差异,说明哪些有变化,哪些没变化。

简介

在为客户部署长期解决方案时,进化是必须的,Parse 也不例外。

随着 GraphQL 标准的普及和使用,社区要求更好的集成、简化的使用和直观性。作为 Parse 的维护者和积极贡献者,Back4app 听到了这些声音,并投入大量精力在开源 Parse 平台上实现这些成果。

随着时间的推移,我们的开发人员带来了新的功能,例如云代码集成,但社区一直要求在框架和平台上使用更加一致的 GraphQL 语法,我们在 Parse 3.9 中实现了这一目标,并将其交付给社区,使其从中受益。

在语法不断发展的同时,我们也做了一些关键性的改动,因此根据你使用的 Parse 版本,你必须选择正确的语法:3.7.2、3.8 和 3.9 的语法略有不同,但都能达到相同的效果。
因此,我撰写了这篇文章,以便在一个地方为你提供所有文档,同时,我强烈建议用户将 Parse 升级到 3.9 以及新语法,这是我们迄今为止跨平台/跨框架语法兼容性最强的版本。

下面我将向大家展示一些示例。

API 健康状况

API 健康状况查询在各个版本中都没有变化,你可以通过以下方式持续调用它:

就能在不同版本中获得相同的响应:

创建对象

创建对象的突变随着时间的推移发生了变化,以便在不同的 GraphQL 框架之间更加一致,其中还包括在更改 Pare 版本之前应考虑的破坏性更改。

使用通用突变

在 Parse 3.7.2 中,你只需要求创建对象,类就会自动为你创建:

在 Parse 3.8 中,由于对象查询被移除了,所以有了些许变化,但你仍然可以要求创建一个对象,类也会自动创建:

但在 Parse 3.9 中,你必须首先创建类,明确添加其字段:

然后才能使用特定方法保存对象(如下)。

使用特定方法(类突变)

特定方法(类方法,这里指类突变)也发生了变化:

在 Parse 3.7.2 中是这样:

在 Parse 3.8 中,删除了对象属性:

最后,在 Parse 3.9 中,ObjectId 更名为 id,以便符合标准:

获取对象

为了更好地保持一致性和兼容性,对象的检索也随着时间的推移而不断发展。

使用通用查询

你可以指定类名和对象 ID,以便使用通用 GET 方法检索特定对象,这种方法适用于任何类。

请参阅 Parse 3.7.2:

后来,Parse 3.8 去掉了对象,使调用更加简单:

Parse 3.8:

随着 Parse 3.9 的发布,通用方法 GET 被移除,你应该使用特定的类方法来获取对象(下文将详细介绍)。

使用特定方法(类查询)

特定方法也根据 Parse 版本的不同而变化。

在 Parse 3.7.2 中,我们使用了

后来,在 Parse 3.8 中,我们也去掉了对象属性,以方便调用:

而在 Parse 3.9 中,objectId 被 id 取代,以提高框架间的一致性:

查找对象

随着时间的推移,查找对象的功能也在不断发展,以实现更好的一致性和兼容性。

使用通用查询

你可以使用通用 FIND 方法指定类名,以便检索对象列表,这种方法适用于任何类。

Parse 3.7.2:

后来,Parse 3.8 去掉了对象,使调用更加简单:

Parse 3.8:

随着 Parse 3.9 的发布,通用方法 FIND 被移除,你应该使用特定的类方法来检索对象(下文将详细介绍)。

使用特定方法(类查询)

特定方法也根据 Parse 版本的不同而变化。

在 Parse 3.7.2 中,我们使用了

后来,在 Parse 3.8 中,我们也去掉了对象属性,以方便调用:

而在 Parse 3.9 中,objectId 被 id 取代,以提高框架间的一致性:

更新对象

为了更好地保持一致性和兼容性,更新对象也必须做出改变。

使用通用查询

为了更新对象,你可以使用通用的 UPDATE 方法指定类名和对象 ID,这种方法适用于任何类。

Parse 3.7.2:

后来,Parse 3.8 去掉了对象,使调用变得更简单:

Parse 3.8:

随着 Parse 3.9 的发布,通用方法 UPDATE 被移除,你应该使用特定的类方法来获取对象(下文将详细介绍)。

使用特定方法(类查询)

特定方法也根据 Parse 版本的不同而变化。

在 Parse 3.7.2 中,我们使用了

后来,在 Parse 3.8 中,我们也去掉了对象属性,以方便调用:

而在 Parse 3.9 中,调用方式与 3.8 版类似,但 objectId 在调用时更名为 id:

应用程序方法

应用方法必须跟上变化并符合新标准。应用程序的特定查询和突变也发生了变化。

注册用户

新用户注册会随着时间的推移遵循协议并做出相应调整:

Parse 3.7.2:

后来,Parse 3.8 保留了这一调用方式:

Parse 3.8:

随着 Parse 3.9 的到来,objectId 属性改为 id 以符合要求:

登录用户

登录用户的方式也发生了变化:

Parse 3.7.2:

后来,Parse 3.8 保留了这一调用方式:

Parse 3.8:

随着 Parse 3.9 的到来,objectId 属性改为 id 以符合要求:

获取已登录用户

获取已登录用户信息的方式也发生了变化。你仍然需要传递 “X-Parse-Session-Token “头以及该用户的有效会话令牌,但查询本身已经发生了变化:

Parse 3.7.2:

后来,Parse 3.8 将 ME 查询改为新的 VIEWER 格式:

Parse 3.8:

在 Parse 3.9 中,objectId 属性改为 id,以符合要求。如果不需要,语法与 3.8 相同:

结论

随着 Parse 与其他平台和格式的不断发展,为了简化开发、保持一致性和互操作性,Parse 自然也在不断变化。

随着新标准的出现,Parse 也必须做出相应的改变,以避免与其集成的主要组件出现差异。

作为 Parse 的忠实用户,我自己也期待着 Parse 能随着时间的推移做出更多改变。好的变化。有意义的改变,让每个人都能实现自己的目标。

我们 Back4app 很荣幸能帮助实现这一演变,我们建议所有使用 GraphQL 的用户将 Parse 升级到 3.9 版,同时更新您的 GraphQL 查询和突变。您将受益于更加一致的查询语言。

4.0 版即将发布。它将带来什么?

GraphQL 随着时间的推移做了哪些改变?

在此过程中,我们经历了以下主要变化:
-云代码集成
-简化使用
-直观性
-采用新技术
-语法一致
这些是随着时间的推移而做出的一些改变。

在创建对象的 Mutation 中需要做出哪些改变?

一致性是此次更新的主要关注点。现在,您需要先在 Parse 3.9 中创建类,然后再创建对象。因此,本次更新旨在追求一致性。

多方面做出改变好吗?

是的,它确实需要做出改变。新标准层出不穷,使用 Parse 的人也对此抱有很高的期望。他们希望看到改进,Parse 也是如此。它也会持续更新,力求在未来成为一个更好的版本。


Leave a reply

Your email address will not be published.