Requêtes et mutations GraphQL sur des versions distinctes de Parse
Comme Parse évolue au fil du temps, certains de ses aspects changent pour de meilleures performances, une meilleure compatibilité et un développement plus facile.
Un de ces aspects est le support GraphQL qui a évolué de Parse 3.5.0 à la dernière version disponible, 3.9.
Ici, chez Back4app, nous avons trois versions principales qui implémentent les changements dans les requêtes GraphQL et les mutations, spécifiquement : 3.7.2, 3.8 et 3.9 et aujourd’hui je vais vous guider à travers les différences entre ces versions, en montrant ce qui a changé et ce qui n’a pas changé.
Contents
Introduction
L’évolution est obligatoire lorsque l’on déploie des solutions à long terme pour les clients et Parse ne fait pas exception à la règle.
Comme les standards GraphQL ont commencé à devenir plus populaires et utilisés, la communauté a demandé une meilleure intégration, une utilisation simplifiée, et de l’intuitivité. En tant que mainteneurs de Parse et contributeurs actifs, Back4app a entendu ces voix et a mis beaucoup d’efforts pour atteindre de tels résultats dans la plateforme open-source Parse.
Nos développeurs ont apporté de nouvelles fonctionnalités au fil du temps, comme l’intégration de Cloud Code, mais la communauté a continué à demander une syntaxe GraphQL plus cohérente à travers les frameworks et les plateformes, et avec Parse 3.9 nous l’avons réalisée et l’avons livrée à la communauté pour qu’elle en bénéficie.
Alors que cette syntaxe a évolué, quelques changements clés ont été faits, donc en fonction de la version de Parse que vous utilisez, vous devez choisir la syntaxe correcte pour elle : 3.7.2, 3.8 et 3.9 ont des syntaxes légèrement différentes pour obtenir les mêmes résultats.
C’est pour cette raison que j’écris cet article, afin que tout soit documenté en un seul endroit et, pendant ce temps, je recommande fortement aux utilisateurs de mettre à jour leur Parse vers la version 3.9 avec la nouvelle syntaxe, notre version la plus compatible avec les syntaxes multiplateformes et multi-framework à ce jour.
Ci-dessous, je vous montrerai quelques exemples.
Santé de l’API
La requête sur la santé de l’API n’a pas changé d’une version à l’autre, et vous pouvez l’appeler de manière cohérente en lançant une requête :
ce qui donnera la même réponse d’une version à l’autre :
Création d’un objet
La Mutation pour la création d’un objet a changé au fil du temps pour être plus cohérente entre les différents frameworks GraphQL et inclure des changements de rupture que vous devriez prendre en compte avant de changer la version de Pare.
Utilisation d’une mutation générique
Dans Parse 3.7.2, vous pouviez simplement demander la création d’un objet et une classe était automatiquement créée pour vous :
Dans Parse 3.8, il y a un léger changement car la requête d’objets a été supprimée, mais vous pouvez toujours demander la création d’un objet et la classe sera automatiquement créée :
Dans Parse 3.9, cependant, vous devez d’abord créer votre classe, en ajoutant explicitement ses champs :
et ce n’est qu’ensuite que vous pourrez sauvegarder un objet en utilisant sa méthode spécifique (ci-dessous).
Utilisation d’une méthode spécifique (Mutation de classe)
Les méthodes spécifiques (méthodes de classe, dans ce cas, une mutation de classe) ont également changé :
Dans Parse 3.7.2, c’était le cas :
Dans Parse 3.8, la propriété objects a été supprimée :
Enfin, dans Parse 3.9, l’ObjectId a été renommé en id, afin de se conformer aux normes :
Récupérer un objet
La récupération des objets a également évolué au fil du temps pour améliorer la cohérence et la compatibilité.
Utilisation d’une requête générique
Vous pouvez spécifier le nom de la classe et l’ID de l’objet afin de récupérer un objet spécifique, en utilisant la méthode générique GET, qui fonctionnerait pour n’importe quelle classe.
Parse 3.7.2 :
Plus tard, Parse 3.8 a supprimé les objets, permettant un appel plus simple :
Parse 3.8 :
Avec l’arrivée de Parse 3.9, la méthode générique GET a été supprimée et vous devez utiliser la méthode spécifique de la classe pour récupérer des objets (plus d’informations ci-dessous).
Utilisation d’une méthode spécifique (Class Query)
Les méthodes spécifiques ont également changé en fonction de la version de Parse.
Dans Parse 3.7.2, nous avions :
Plus tard, dans Parse 3.8, nous avons également supprimé la propriété objects pour faciliter l’appel :
Et dans Parse 3.9, l’objectId a été remplacé par id pour une meilleure cohérence entre les frameworks :
Trouver un objet
La recherche d’objets a également évolué au fil du temps pour une meilleure cohérence et compatibilité.
Utilisation d’une requête générique
Vous pouvez spécifier le nom de la classe afin de récupérer une liste d’objets, en utilisant la méthode générique FIND, qui fonctionnera pour n’importe quelle classe.
Parse 3.7.2 :
Plus tard, Parse 3.8 a supprimé les objets, permettant un appel plus simple :
Parse 3.8 :
Avec l’arrivée de Parse 3.9, la méthode générique FIND a été supprimée et vous devez utiliser la méthode spécifique de la classe afin de récupérer des objets (plus d’informations ci-dessous).
Utilisation d’une méthode spécifique (Class Query)
Les méthodes spécifiques ont également changé en fonction de la version de Parse.
Dans Parse 3.7.2, nous avions :
Plus tard, dans Parse 3.8, nous avons également supprimé la propriété objects pour faciliter l’appel :
Et dans Parse 3.9, l’objectId a été remplacé par id pour une meilleure cohérence entre les frameworks :
Mise à jour d’un objet
La mise à jour des objets devait également changer pour une meilleure cohérence et compatibilité.
Utilisation d’une requête générique
Vous pouvez spécifier le nom de la classe et l’ObjectID afin de mettre à jour un objet, en utilisant la méthode générique UPDATE, qui fonctionne pour n’importe quelle classe.
Parse 3.7.2 :
Plus tard, Parse 3.8 a supprimé les objets, permettant un appel plus simple :
Parse 3.8 :
Avec l’arrivée de Parse 3.9, la méthode générique UPDATE a été supprimée et vous devez utiliser la méthode spécifique de la classe afin de récupérer des objets (plus d’informations ci-dessous).
Utilisation d’une méthode spécifique (Class Query)
Les méthodes spécifiques ont également changé en fonction de la version de Parse.
Dans Parse 3.7.2, nous avions :
Plus tard, dans Parse 3.8, nous avons également supprimé la propriété objects pour faciliter l’appel :
Et dans Parse 3.9, l’appel est resté similaire à celui de la version 3.8, mais l’objectId a été renommé en id dans l’appel :
Méthodes d’application
Les méthodes d’application ont dû suivre les changements et se conformer aux nouvelles normes. Les requêtes et les mutations spécifiques à l’application ont également changé.
Inscription d’un utilisateur
L’inscription de nouveaux utilisateurs a suivi le protocole au fil du temps et a été adaptée en conséquence :
Parse 3.7.2 :
Plus tard, Parse 3.8 a conservé l’appel :
Parse 3.8 :
Avec l’arrivée de Parse 3.9, la propriété objectId a été remplacée par id pour être conforme :
Connexion à un utilisateur
La connexion d’un utilisateur a été modifiée de la même manière :
Parse 3.7.2 :
Plus tard, Parse 3.8 a conservé l’appel :
Parse 3.8 :
Avec l’arrivée de Parse 3.9, la propriété objectId a été remplacée par id pour être conforme :
Obtenir un utilisateur connecté
La récupération d’informations sur un utilisateur connecté a également dû être modifiée. Vous devez toujours passer l’en-tête “X-Parse-Session-Token” avec un jeton de session valide pour cet utilisateur, mais la requête elle-même a changé :
Parse 3.7.2 :
Plus tard, Parse 3.8 a changé la requête ME pour le nouveau format VIEWER :
Parse 3.8 :
Avec l’arrivée de Parse 3.9, la propriété objectId a été remplacée par id pour être conforme. Si vous n’en avez pas besoin, la syntaxe est la même qu’en 3.8 :
Conclusion
Avec l’évolution de Parse et d’autres plateformes et formats au fil du temps, il était tout à fait naturel que Parse continue à changer afin de simplifier le développement et de maintenir la cohérence et l’interopérabilité.
Au fur et à mesure de l’apparition de nouveaux standards, Parse a dû appliquer des changements afin de ne pas différer des principaux composants auxquels il s’intègre.
En tant qu’utilisateur passionné de Parse, je m’attendais à quelques changements supplémentaires au fil du temps. De bons changements. Des changements qui ont du sens et qui permettent à chacun d’atteindre ses objectifs.
Chez Back4app, nous sommes fiers d’avoir contribué à cette évolution et nous conseillons à tous ceux qui utilisent GraphQL de mettre à jour Parse à la version 3.9 en même temps que leurs requêtes et mutations GraphQL. Vous bénéficierez d’un langage de requête beaucoup plus cohérent.
La version 4.0 est en préparation. Qu’apportera-t-elle ?
Quels changements GraphQL a-t-il apporté au fil du temps ?
Les principaux changements suivants ont été apportés :
– Intégration du code cloud
– Utilisation simplifiée
– Intuitivité
– Nouvelle technologie utilisée
– Syntaxe cohérente
Voici quelques modifications apportées au fil du temps.
Quelle était la nécessité d’apporter des modifications à la Mutation de la création d’objets ?
La cohérence était au cœur des modifications. Il faut désormais créer la classe dans Parse 3.9, puis les objets. Cette mise à jour a donc été axée sur la cohérence.
Était-il bon d’apporter des changements dans de nombreux aspects ?
Oui, des changements étaient nécessaires. De nouvelles normes apparaissaient et les utilisateurs de Parse nourrissaient de grandes attentes. Ils souhaitaient voir des améliorations, et Parse a fait de même. Il continuera à se mettre à jour pour rester performant à l’avenir.