Bird
Raised Fist0
GraphQLquery~10 mins

Inline fragments in GraphQL - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to fetch the name field from a User type using an inline fragment.

GraphQL
query {
  user(id: "1") {
    ... on [1] {
      name
    }
  }
}
Drag options to blanks, or click blank then click option'
AComment
BPost
CUser
DProfile
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong type name in the inline fragment.
Forgetting the 'on' keyword in the inline fragment.
2fill in blank
medium

Complete the code to fetch the title field from a Post type using an inline fragment.

GraphQL
query {
  node(id: "2") {
    ... on [1] {
      title
    }
  }
}
Drag options to blanks, or click blank then click option'
AUser
BProfile
CComment
DPost
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong type name in the inline fragment.
Not using an inline fragment when the type is not known.
3fill in blank
hard

Fix the error in the inline fragment to fetch the text field from a Comment type.

GraphQL
query {
  node(id: "3") {
    ... [1] {
      text
    }
  }
}
Drag options to blanks, or click blank then click option'
Aon Comment
BComment
ConComment
Don comment
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting the 'on' keyword.
Using incorrect capitalization or spacing.
4fill in blank
hard

Fill both blanks to fetch the name from User and title from Post using inline fragments.

GraphQL
query {
  node(id: "4") {
    ... on [1] {
      name
    }
    ... on [2] {
      title
    }
  }
}
Drag options to blanks, or click blank then click option'
AUser
BPost
CComment
DProfile
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up type names for the fields.
Forgetting to use inline fragments for different types.
5fill in blank
hard

Fill all three blanks to fetch name from User, title from Post, and text from Comment using inline fragments.

GraphQL
query {
  node(id: "5") {
    ... on [1] {
      name
    }
    ... on [2] {
      title
    }
    ... on [3] {
      text
    }
  }
}
Drag options to blanks, or click blank then click option'
AUser
BPost
CComment
DProfile
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong type names for fields.
Not using inline fragments for multiple types.

Practice

(1/5)
1. What is the main purpose of using inline fragments in a GraphQL query?
easy
A. To select fields conditionally based on the object type in a mixed list
B. To create new types in the schema
C. To update data on the server
D. To paginate query results

Solution

  1. Step 1: Understand inline fragments usage

    Inline fragments allow querying different fields depending on the type of an object in a list or union.
  2. Step 2: Identify the purpose in queries

    This lets you get specific fields for each type without separate queries.
  3. Final Answer:

    To select fields conditionally based on the object type in a mixed list -> Option A
  4. Quick Check:

    Inline fragments = conditional fields by type [OK]
Hint: Inline fragments pick fields by type inside mixed lists [OK]
Common Mistakes:
  • Thinking inline fragments create new types
  • Confusing inline fragments with mutations
  • Using inline fragments for pagination
2. Which of the following is the correct syntax for an inline fragment in GraphQL?
easy
A. ... on { TypeName field1 field2 }
B. ... TypeName { field1 field2 }
C. ... TypeName on { field1 field2 }
D. ... on TypeName { field1 field2 }

Solution

  1. Step 1: Recall inline fragment syntax

    The correct syntax uses three dots, then on, then the type name, followed by fields in braces.
  2. Step 2: Match options to syntax

    ... on TypeName { field1 field2 } matches this exactly: ... on TypeName { field1 field2 }.
  3. Final Answer:

    ... on TypeName { field1 field2 } -> Option D
  4. Quick Check:

    Inline fragment syntax = '... on TypeName { fields }' [OK]
Hint: Remember: three dots + 'on' + type name + braces [OK]
Common Mistakes:
  • Omitting the 'on' keyword
  • Placing type name inside braces incorrectly
  • Using wrong order of keywords
3. Given this GraphQL query snippet:
{
  searchItems {
    id
    ... on Book {
      author
    }
    ... on Movie {
      director
    }
  }
}

What fields will be returned for an item of type Movie?
medium
A. id and director
B. id and author
C. only director
D. only id

Solution

  1. Step 1: Identify fields outside and inside fragments

    The field id is always returned for all items. For Movie type, the inline fragment selects director.
  2. Step 2: Combine fields for Movie type

    So, the result for a Movie item includes id and director.
  3. Final Answer:

    id and director -> Option A
  4. Quick Check:

    Movie fields = id + director [OK]
Hint: Fields outside fragments always return; inside depends on type [OK]
Common Mistakes:
  • Assuming author field returns for Movie
  • Ignoring fields outside fragments
  • Thinking only fragment fields return
4. Consider this GraphQL query:
{
  items {
    ... on Book {
      title
      author
    }
    ... on Movie {
      title
      director
    }
  }
}

What is the error in this query?
medium
A. Cannot query both Book and Movie in the same query
B. Missing closing brace for the root field
C. Fields inside fragments must be unique across fragments
D. Inline fragments cannot be used without a type condition

Solution

  1. Step 1: Check query braces

    The query opens braces for items and two inline fragments but does not close the items field or the root query braces.
  2. Step 2: Identify missing closing braces

    Proper GraphQL syntax requires matching closing braces for all opened braces.
  3. Final Answer:

    Missing closing brace for the root field -> Option B
  4. Quick Check:

    All braces must close properly [OK]
Hint: Count opening and closing braces carefully [OK]
Common Mistakes:
  • Forgetting to close braces
  • Thinking inline fragments need unique fields
  • Believing you cannot query multiple types
5. You have a GraphQL schema with a union type SearchResult = Book | Movie | Author. You want to query a list of searchResults and get the title for Book, director for Movie, and name for Author. Which query correctly uses inline fragments to achieve this?
hard
A. { searchResults { ... { title director name } } }
B. { searchResults { title director name } }
C. { searchResults { ... on Book { title } ... on Movie { director } ... on Author { name } } }
D. { searchResults { ... on SearchResult { title director name } } }

Solution

  1. Step 1: Understand union type querying

    For a union, you must use inline fragments with ... on TypeName to get fields specific to each type.
  2. Step 2: Evaluate each option

    { searchResults { ... on Book { title } ... on Movie { director } ... on Author { name } } } correctly uses inline fragments for each type. { searchResults { title director name } } tries to get all fields directly, which fails. { searchResults { ... { title director name } } } has invalid syntax. { searchResults { ... on SearchResult { title director name } } } incorrectly uses the union name as a type condition.
  3. Final Answer:

    { searchResults { ... on Book { title } ... on Movie { director } ... on Author { name } } } -> Option C
  4. Quick Check:

    Use inline fragments per type in unions [OK]
Hint: Use '... on TypeName' for each union member [OK]
Common Mistakes:
  • Querying all fields without fragments on unions
  • Using union name as type condition
  • Incorrect fragment syntax
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard