Запросы и мутации GraphQL на разных версиях Parse

По мере развития Parse некоторые его аспекты меняются для повышения производительности, улучшения совместимости и упрощения разработки.
Одним из таких аспектов является поддержка GraphQL, которая со временем эволюционировала от Parse 3.5.0 до последней доступной версии, 3.9.

Здесь, в Back4app, у нас есть три основные версии, которые реализуют изменения в запросах и мутациях GraphQL, а именно: 3.7.2, 3.8 и 3.9, и сегодня я проведу вас через различия между этими версиями, показывая, что изменилось, а что нет.

Введение

Эволюция обязательна при развертывании долгосрочных решений для клиентов, и Parse не является исключением.

По мере того как стандарты GraphQL становились все более популярными и используемыми, сообщество требовало лучшей интеграции, упрощения использования и интуитивности. Компания Back4app, являясь сопровождающим и активным участником проекта Parse, услышала эти голоса и приложила много усилий для достижения таких результатов в платформе Parse с открытым исходным кодом.

Со временем наши разработчики добавили новые функции, такие как интеграция с Cloud Code, но сообщество продолжало просить о более последовательном синтаксисе 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 свойство objects было удалено:

И, наконец, в Parse 3.9 свойство ObjectId было переименовано в id, чтобы оно соответствовало стандартам:

Получение объекта

Получение объектов также претерпело изменения с течением времени для улучшения согласованности и совместимости.

Использование общего запроса

Вы можете указать имя класса и идентификатор объекта, чтобы получить конкретный объект, используя общий метод GET, который будет работать для любого класса.

Parse 3.7.2:

Позже в Parse 3.8 объекты были удалены, что позволило сделать вызов более простым:

Parse 3.8:

С появлением Parse 3.9 общий метод GET был удален, и для получения объектов необходимо использовать специфический метод класса (подробнее об этом ниже).

Использование специфического метода (Class Query)

Специфические методы также менялись в зависимости от версии Parse.

В Parse 3.7.2 мы имели:

Позже, в Parse 3.8, мы также убрали свойство objects для упрощения вызова:

А в Parse 3.9 свойство objectId было заменено на id для лучшей согласованности между фреймворками:

Поиск объекта

Поиск объектов также претерпел изменения с течением времени для лучшей согласованности и совместимости.

Использование общего запроса

Вы можете указать имя класса, чтобы получить список объектов, используя общий метод FIND, который будет работать для любого класса.

Parse 3.7.2:

Позже в Parse 3.8 объекты были удалены, что позволило упростить вызов:

Parse 3.8:

С появлением Parse 3.9 общий метод FIND был удален, и для получения объектов необходимо использовать метод конкретного класса (подробнее об этом ниже).

Использование специфического метода (Class Query)

Специфические методы также менялись в зависимости от версии Parse.

В Parse 3.7.2 мы имели:

Позже, в Parse 3.8, мы также убрали свойство objects для более удобного вызова:

А в Parse 3.9 свойство objectId было заменено на id для лучшей согласованности между фреймворками:

Обновление объекта

Обновление объектов также должно было измениться для лучшей согласованности и совместимости.

Использование общего запроса

Вы могли указать имя класса и ObjectID, чтобы обновить объект, используя общий метод UPDATE, который работал для любого класса.

Parse 3.7.2:

Позднее в Parse 3.8 объекты были удалены, что позволило упростить вызов:

Parse 3.8:

С появлением Parse 3.9 общий метод UPDATE был удален, и для получения объектов необходимо использовать метод конкретного класса (подробнее об этом ниже).

Использование специфического метода (Class Query)

Специфические методы также менялись в зависимости от версии Parse.

В Parse 3.7.2 мы имели:

Позже, в Parse 3.8, мы также убрали свойство objects для упрощения вызова:

А в 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, я и сам ожидал, что со временем произойдет еще несколько изменений. Хороших изменений. Изменения, которые имеют смысл и позволяют каждому достичь своих целей.

Мы в Back4app гордимся тем, что помогли этой эволюции, и советуем всем, кто использует GraphQL, обновить Parse до 3.9 вместе с вашими GraphQL-запросами и мутациями. Вы выиграете от гораздо более последовательного языка запросов.

Версия 4.0 находится в печи. Что она принесет?

Какие изменения были внесены в GraphQL за это время?

По ходу дела произошли следующие основные изменения.

-Интеграция облачного кода
-Упрощенное использование
-Интуитивность
-Использование новой технологии
-Последовательный синтаксис

Это были некоторые изменения, которые были сделаны со временем.

Какая была необходимость вносить изменения в Мутацию создания объектов?

Последовательность была основным фокусом для внесения изменений в этом. Теперь вам нужно сначала создать класс в Parse 3.9, а затем создать объекты. Поэтому в этом обновлении мы стремились к последовательности.

Было ли полезно вносить изменения во многие аспекты?

Да, это было необходимо для внесения изменений. Появлялись новые стандарты, и люди, использующие parse, возлагали большие надежды. Они хотели видеть изменения в сторону улучшения, и Parse сделал то же самое. Он будет продолжать обновляться, чтобы стать хорошей версией и в будущем.


Leave a reply

Your email address will not be published.