Zum Hauptinhalt springen

Abfragen entwerfen

Sobald Sie Ihre ersten Signieranforderungen gesendet haben, möchten Sie mehr von der API nutzen. Der GraphiQL Explorer ist ein großartiger Ort zum Experimentieren, aber GraphQL kann eine "Ich-will-alles"-Einstellung fördern. Ein paar Momente des Nachdenkens ersparen Ihnen häufige Probleme:

  • Ist es wahrscheinlich, dass die Daten veralten?
  • Beeinträchtige ich die Leistung meiner Anwendung durch eine unnötig lange Startzeit?

Wenn Sie etwas wie TanStack Query verwenden, verstehen Sie den Nutzen, Abfragen in cachebare Einheiten zu zerlegen, die optimistisch aktualisiert oder invalidiert werden können. Hier sind Richtlinien, die wir durch schmerzhafte Erfahrungen entwickelt haben.

Vermeiden Sie tiefe Verschachtelungen bei Listen

Vermeiden Sie List-Abfragen mit einer Baumtiefe größer als 2. Bei Abfragen einzelner Elemente ist eine tiefere Verschachtelung in Ordnung.

Manchmal lohnt es sich, Aggregatfelder beim Elternobjekt zu verwenden, um zusätzliche Resolver-Aufrufe zu vermeiden. Zum Beispiel, wenn das Wichtige an einem Batch die Anzahl der enthaltenen Dokumente ist (was tausende sein können), verwenden Sie das Feld documentCount anstelle der vollständigen Abfrage von documentConnection.

Datentypen isolieren

Halten Sie Objekttypen in separaten Abfragen, es sei denn, die Daten sind langsam ändernd und global (wie Group-Aufbewahrungseinstellungen). Das scheint zunächst nicht wichtig, aber wenn Sie einen Cache invalidieren oder einen Datensatz optimistisch aktualisieren müssen, werden Sie dankbar sein, dass jeder Typ seinen eigenen Abfrageschlüssel hat.

Abfrageänderungen testen

Eine kleine Änderung an einer Abfrage kann unerwartete Leistungseinbußen mit sich bringen. Wir haben mehrere Fälle gefunden, in denen vormals schnelle Abfragen sich durch Generationen von Änderungen zu lahmen Slugs entwickelten. Setzen Sie abhängig von Ihrer Integration ein konzeptionelles Zeitlimit für Abfragen und überprüfen Sie die Leistung, wenn Sie sie ändern.

Siehe auch

Export This Article

Save a copy of this page as PDF or plain text.