GraphQL-Abfragen und Mutationen bei unterschiedlichen Parse-Versionen
Mit der Weiterentwicklung von Parse werden einige Aspekte geändert, um die Leistung zu verbessern, die Kompatibilität zu erhöhen und die Entwicklung zu erleichtern.
Einer dieser Aspekte ist die GraphQL-Unterstützung, die sich im Laufe der Zeit von Parse 3.5.0 zur neuesten Version 3.9 entwickelt hat.
Hier bei Back4app haben wir drei Hauptversionen, die Änderungen bei den GraphQL-Abfragen und -Mutationen implementieren, und zwar: 3.7.2, 3.8 und 3.9. Heute werde ich Ihnen die Unterschiede zwischen diesen Versionen erläutern und zeigen, was sich geändert hat und was nicht.
Contents
Einführung
Evolution ist ein Muss, wenn man langfristige Lösungen für Kunden bereitstellt, und Parse ist da keine Ausnahme.
Als die GraphQL-Standards immer beliebter und häufiger verwendet wurden, forderte die Community eine bessere Integration, eine vereinfachte Nutzung und mehr Intuitivität. Und als Parse-Maintainer und aktiver Mitwirkender hat Back4app diese Stimmen gehört und viel Aufwand betrieben, um solche Ergebnisse in der Open-Source-Plattform Parse zu erreichen.
Unsere Entwickler brachten im Laufe der Zeit neue Funktionen wie die Cloud-Code-Integration ein, aber die Community forderte immer wieder eine konsistentere GraphQL-Syntax über Frameworks und Plattformen hinweg, und mit Parse 3.9 haben wir dies erreicht und der Community zur Verfügung gestellt.
Während sich diese Syntax weiterentwickelte, wurden einige wichtige Änderungen vorgenommen, so dass Sie je nach der von Ihnen verwendeten Parse-Version die richtige Syntax wählen müssen: 3.7.2, 3.8 und 3.9 haben leicht unterschiedliche Syntaxen, um die gleichen Ergebnisse zu erzielen.
Aus diesem Grund schreibe ich diesen Artikel, damit Sie alles an einem Ort dokumentiert haben, und während ich das tue, empfehle ich den Benutzern dringend, ihr Parse auf 3.9 zusammen mit der neuen Syntax zu aktualisieren, unserer bisher plattform- und rahmenübergreifendsten Syntaxkompatiblen Version.
Im Folgenden zeige ich Ihnen einige Beispiele.
API-Gesundheit
Die Abfrage des API-Zustands hat sich zwischen den Versionen nicht geändert, und Sie können sie durch Abfragen konsistent aufrufen:
was in allen Versionen zur gleichen Antwort führt:
Erstellen eines Objekts
Die Mutation für die Erstellung eines Objekts wurde im Laufe der Zeit geändert, um eine größere Konsistenz zwischen den verschiedenen GraphQL-Frameworks zu erreichen, und sie enthält Änderungen, die Sie berücksichtigen sollten, bevor Sie die Pare-Version ändern.
Verwendung einer generischen Mutation
In Parse 3.7.2 konnten Sie einfach nach der Erstellung eines Objekts fragen und eine Klasse wurde automatisch für Sie erstellt:
In Parse 3.8 gibt es eine geringfügige Änderung, da die Objektabfrage entfernt wurde, aber Sie können immer noch nach der Erstellung eines Objekts fragen und die Klasse wird automatisch erstellt:
In Parse 3.9 müssen Sie jedoch zunächst Ihre Klasse erstellen und ihre Felder explizit hinzufügen:
und erst dann können Sie ein Objekt mit seiner spezifischen Methode speichern (siehe unten).
Verwendung einer bestimmten Methode (Klassenmutation)
Spezifische Methoden (Klassenmethoden, in diesem Fall eine Klassenmutation) wurden ebenfalls geändert:
In Parse 3.7.2 war es:
In Parse 3.8 wurde die Eigenschaft objects entfernt:
Und schließlich wurde in Parse 3.9 die ObjectId in id umbenannt, um den Standards zu entsprechen:
Ein Objekt abrufen
Auch das Abrufen von Objekten hat sich im Laufe der Zeit weiterentwickelt, um die Konsistenz und Kompatibilität zu verbessern.
Verwendung einer generischen Abfrage
Sie können den Klassennamen und die Objekt-ID angeben, um ein bestimmtes Objekt abzurufen, indem Sie die generische GET-Methode verwenden, die für jede Klasse funktionieren würde.
Parse 3.7.2:
Später, in Parse 3.8, wurden die Objekte entfernt, um einen einfacheren Aufruf zu ermöglichen:
Parse 3.8:
Mit dem Erscheinen von Parse 3.9 wurde die generische Methode GET entfernt und Sie sollten die spezifische Klassenmethode verwenden, um Objekte abzurufen (mehr dazu unten).
Verwendung einer spezifischen Methode (Klassenabfrage)
Auch die spezifischen Methoden haben sich je nach Parse-Version geändert.
In Parse 3.7.2 hatten wir:
Später, in Parse 3.8, haben wir auch die Eigenschaft objects entfernt, um den Aufruf zu erleichtern:
Und in Parse 3.9 wurde die objectId durch id ersetzt, um die Konsistenz zwischen den Frameworks zu verbessern:
Suche nach einem Objekt
Auch die Suche nach Objekten hat sich im Laufe der Zeit weiterentwickelt, um die Konsistenz und Kompatibilität zu verbessern.
Verwendung einer generischen Abfrage
Sie können den Klassennamen angeben, um eine Liste von Objekten zu erhalten, indem Sie die generische FIND-Methode verwenden, die für jede Klasse funktioniert.
Parse 3.7.2:
Später, in Parse 3.8, wurden die Objekte entfernt, um einen einfacheren Aufruf zu ermöglichen:
Parse 3.8:
Mit dem Erscheinen von Parse 3.9 wurde die generische Methode FIND entfernt und Sie sollten die spezifische Klassenmethode verwenden, um Objekte abzurufen (mehr dazu weiter unten).
Verwendung einer spezifischen Methode (Klassenabfrage)
Auch die spezifischen Methoden haben sich je nach Parse-Version geändert.
In Parse 3.7.2 hatten wir:
Später, in Parse 3.8, haben wir auch die Eigenschaft objects entfernt, um den Aufruf zu erleichtern:
Und in Parse 3.9 wurde die objectId durch id ersetzt, um die Konsistenz zwischen den Frameworks zu verbessern:
Aktualisieren eines Objekts
Auch die Aktualisierung von Objekten musste aus Gründen der Konsistenz und Kompatibilität geändert werden.
Verwendung einer generischen Abfrage
Man konnte den Klassennamen und die ObjectID angeben, um ein Objekt zu aktualisieren, indem man die generische UPDATE-Methode verwendete, die für jede Klasse funktioniert.
Parse 3.7.2:
Später, in Parse 3.8, wurden die Objekte entfernt, was einen einfacheren Aufruf ermöglichte:
Parse 3.8:
Mit dem Erscheinen von Parse 3.9 wurde die generische Methode UPDATE entfernt und Sie sollten die spezifische Klassenmethode verwenden, um Objekte abzurufen (mehr dazu weiter unten).
Verwendung einer spezifischen Methode (Klassenabfrage)
Auch die spezifischen Methoden haben sich je nach Parse-Version geändert.
In Parse 3.7.2 hatten wir:
Später, in Parse 3.8, haben wir auch die Eigenschaft objects entfernt, um den Aufruf zu erleichtern:
Und in Parse 3.9 wurde der Aufruf ähnlich wie in 3.8 gehalten, aber die objectId wurde im Aufruf in id umbenannt:
Anwendungsmethoden
Die Anwendungsmethoden mussten den Änderungen folgen und mit den neuen Standards übereinstimmen. Abfragen und Mutationen, die für die App spezifisch sind, haben sich ebenfalls geändert.
Anmeldung eines Benutzers
Die Anmeldung neuer Benutzer folgte dem Protokoll über die Zeit und wurde entsprechend angepasst:
Parse 3.7.2:
Später, in Parse 3.8, wurde der Aufruf beibehalten:
Parse 3.8:
Mit dem Erscheinen von Parse 3.9 wurde die objectId-Eigenschaft in id geändert, um den Anforderungen zu entsprechen:
Einloggen eines Benutzers
Die Anmeldung eines Benutzers hat sich auf die gleiche Weise geändert:
Parse 3.7.2:
Später behielt Parse 3.8 den Aufruf bei:
Parse 3.8:
Mit dem Erscheinen von Parse 3.9 wurde die objectId-Eigenschaft in id geändert, um den Anforderungen zu entsprechen:
Abrufen eines angemeldeten Benutzers
Das Abrufen von Informationen über einen angemeldeten Benutzer musste sich ebenfalls ändern. Sie müssen immer noch den “X-Parse-Session-Token”-Header zusammen mit einem gültigen Session-Token für diesen Benutzer übergeben, aber die Abfrage selbst hat sich geändert:
Parse 3.7.2:
Später, mit Parse 3.8, wurde die ME-Abfrage auf das neue VIEWER-Format umgestellt:
Parse 3.8:
Mit dem Erscheinen von Parse 3.9 wurde die objectId-Eigenschaft in id geändert, um dem Format zu entsprechen. Wenn Sie sie nicht benötigen, ist die Syntax die gleiche wie in 3.8:
Schlussfolgerung
Mit der Weiterentwicklung von Parse zusammen mit anderen Plattformen und Formaten im Laufe der Zeit war es nur natürlich, dass Parse sich ständig änderte, um die Entwicklung zu vereinfachen und die Konsistenz und Interoperabilität zu erhalten.
Als neue Standards auftauchten, musste Parse Änderungen vornehmen, damit es sich nicht von den Hauptkomponenten unterscheidet, in die es integriert ist.
Als begeisterter Parse-Benutzer würde ich selbst im Laufe der Zeit ein paar weitere Änderungen erwarten. Gute Änderungen. Änderungen, die Sinn machen und es jedem ermöglichen, seine Ziele zu erreichen.
Wir von Back4app sind stolz darauf, an dieser Entwicklung mitgewirkt zu haben und raten allen GraphQL-Anwendern, Parse zusammen mit ihren GraphQL-Abfragen und -Mutationen auf 3.9 zu aktualisieren. Sie werden von einer viel konsistenteren Abfragesprache profitieren.
Version 4.0 ist in der Mache. Was wird sie bringen?
Welche Änderungen hat GraphQL im Laufe der Zeit vorgenommen?
Folgende wichtige Änderungen wurden im Laufe der Zeit vorgenommen:
– Cloud-Code-Integration
– Vereinfachte Nutzung
– Intuitive Bedienung
– Neue Technologie
– Einheitliche Syntax
Dies sind einige der Änderungen, die im Laufe der Zeit vorgenommen wurden.
Warum mussten bei der Mutation von Objekten Änderungen vorgenommen werden?
Bei den Änderungen stand die Konsistenz im Vordergrund. In Parse 3.9 müssen Sie nun zuerst die Klasse und anschließend die Objekte erstellen. Daher wurde bei diesem Update auf Konsistenz geachtet.
War es gut, in vielen Aspekten Änderungen vorzunehmen?
Ja, es waren Änderungen notwendig. Neue Standards entstanden, und die Nutzer von Parse haben hohe Erwartungen. Sie wünschen sich Verbesserungen, und Parse hat dies ebenfalls getan. Parse wird kontinuierlich aktualisiert, um auch in Zukunft eine gute Version zu bieten.