Use Fragments
Reuse field selections across queries with GraphQL fragments.
Anti-Patternβ
# BAD: Duplicating field selections
query GetTriple($id: String!) {
triple(term_id: $id) {
subject {
term_id
label
creator { id label }
}
predicate {
term_id
label
creator { id label }
}
object {
term_id
label
creator { id label }
}
}
}
Best Practiceβ
# GOOD: Using fragments
fragment AtomBasics on atoms {
term_id
label
creator {
id
label
}
}
query GetTriple($id: String!) {
triple(term_id: $id) {
subject { ...AtomBasics }
predicate { ...AtomBasics }
object { ...AtomBasics }
}
}
Benefitsβ
- DRY code: Define once, use everywhere
- Easier maintenance: Update in one place
- Consistent data: Same fields across queries
- Better readability: Named, semantic units