Πήγαινε στο κύριο περιεχόμενο

Σχεδιασμός Ερωτημάτων

Αφού στείλετε τα πρώτα σας αιτήματα υπογραφής, θα θελήσετε να χρησιμοποιήσετε περισσότερα από το API. Ο GraphiQL Explorer είναι ένας εξαιρετικός χώρος για πειραματισμό, αλλά το GraphQL μπορεί να ενθαρρύνει μια νοοτροπία "τα θέλω όλα". Μερικές στιγμές σκέψης θα σας γλιτώσουν από κοινά προβλήματα:

  • Είναι πιθανό τα δεδομένα να παλιώσουν;
  • Υποβαθμίζω την απόδοση της εφαρμογής μου με περιττό μεγάλο χρόνο εκκίνησης;

Αν χρησιμοποιείτε κάτι σαν το TanStack Query, θα καταλάβετε το όφελος της διάσπασης ερωτημάτων σε κομμάτια που μπορούν να αποθηκευτούν στην cache και να ενημερωθούν αισιόδοξα ή να ακυρωθούν. Ακολουθούν οδηγίες που προέκυψαν από επώδυνη εμπειρία.

Αποφύγετε τη Βαθιά Φωλιάωση σε Λίστες

Αποφύγετε ερωτήματα λίστας με βάθος δέντρου μεγαλύτερο από 2. Σε ερωτήματα με ένα μόνο στοιχείο, η βαθύτερη φωλιάωση είναι αποδεκτή.

Μερικές φορές αξίζει να χρησιμοποιήσετε πεδία συσσωρευτικών δεδομένων στον γονέα για να αποφύγετε την ενεργοποίηση επιπλέον επιλύσεων. Για παράδειγμα, αν το σημαντικό για ένα Batch είναι πόσα έγγραφα περιέχει (που μπορεί να είναι χιλιάδες), χρησιμοποιήστε το πεδίο documentCount αντί να ανακτάτε ολόκληρη τη σύνδεση documentConnection.

Απομονώστε Τύπους Δεδομένων

Κρατήστε τους τύπους αντικειμένων σε ξεχωριστά ερωτήματα εκτός αν τα δεδομένα είναι αργό-μεταβαλλόμενα και παγκόσμια (όπως οι ρυθμίσεις διατήρησης Group). Αυτό δεν φαίνεται σημαντικό μέχρι να χρειαστεί να ακυρώσετε μια cache ή να ενημερώσετε αισιόδοξα μια εγγραφή — τότε θα εκτιμήσετε το ότι κάθε τύπος έχει το δικό του κλειδί ερωτήματος.

Δοκιμάστε Αλλαγές στα Ερωτήματα

Μια γρήγορη αλλαγή σε ένα ερώτημα μπορεί να επιφέρει απρόσμενη ποινή στην απόδοση. Βρήκαμε αρκετές περιπτώσεις που ερωτήματα που ήταν γρήγορα εξελίχθηκαν σε αργά μέσα από γενιές αλλαγών. Θέστε ένα εννοιολογικό όριο χρόνου για τα ερωτήματα ανάλογα με την ενσωμάτωσή σας και ελέγχετε την απόδοση όταν τα τροποποιείτε.

Δείτε Επίσης