GraphQL Basics
GraphQL queries, mutations, and schema basics.
Query Syntax
Basic query
query {
user(id: "123") {
name
email
}
}
Multiple fields
query {
users {
id
name
posts {
title
}
}
}
Query with variables
query GetUser($id: ID!) {
user(id: $id) {
name
}
}
Mutations
Create mutation
mutation {
createUser(input: {
name: "John"
email: "[email protected]"
}) {
id
name
}
}
Update mutation
mutation {
updateUser(
id: "123"
input: { name: "Jane" }
) {
id
name
}
}
Delete mutation
mutation {
deleteUser(id: "123") {
success
}
}
Schema Definition
Type definition
type User {
id: ID!
name: String!
email: String!
posts: [Post]
}
Query type
type Query {
user(id: ID!): User
users: [User]
}
Mutation type
type Mutation {
createUser(input: UserInput!): User
updateUser(id: ID!, input: UserInput!): User
}
Fragments
Define fragment
fragment UserFields on User {
id
name
email
}
Use fragment
query {
user(id: "123") {
...UserFields
}
}