Variables & Fragments — GraphQL

Variables & Fragments Variables Jangan concatenate values ke query string — gunakan variables. Sama seperti parameterized queries di SQL (prevent injection…

Variables & Fragments

Variables

Jangan concatenate values ke query string — gunakan variables. Sama seperti parameterized queries di SQL (prevent injection, reusable).

# Query dengan variables
query GetUser($id: ID!) {
  user(id: $id) {
    name
    email
  }
}

# Variables (JSON terpisah)
{ "id": "123" }

// Frontend
const { data } = await client.query({
  query: GET_USER,
  variables: { id: userId },
});

Default Values

query GetUsers($limit: Int = 10, $offset: Int = 0) {
  users(limit: $limit, offset: $offset) {
    name
  }
}
# Bisa dipanggil tanpa variables — pakai defaults

Fragments

Reusable field selections. DRY untuk queries yang share fields.

# Define fragment
fragment UserBasicInfo on User {
  id
  name
  email
  avatar
}

# Use fragment
query {
  me {
    ...UserBasicInfo
    settings {
      theme
    }
  }
  user(id: "456") {
    ...UserBasicInfo
    posts {
      title
    }
  }
}

# Equivalent to writing id, name, email, avatar di kedua tempat

Inline Fragments

# Untuk union types / interfaces
query {
  search(query: "javascript") {
    ... on Post {
      title
      content
    }
    ... on User {
      name
      email
    }
    ... on Comment {
      text
    }
  }
}

Yang akan kamu pelajari