📖 Scenario: You are building a simple GraphQL schema for a bookstore. You want to store a list of book titles available in the store.
🎯 Goal: Create a GraphQL schema that defines a Bookstore type with a field books that is a list of strings representing book titles.
📋 What You'll Learn
Define a GraphQL type called Bookstore
Add a field called books to Bookstore
The books field must be a list of strings
Use proper GraphQL list syntax for the books field
💡 Why This Matters
🌍 Real World
GraphQL schemas often need to represent collections of items, like lists of books, users, or products.
💼 Career
Understanding list types and nullability in GraphQL is essential for backend developers working with APIs.
Progress0 / 4 steps
1
Define the Bookstore type
Create a GraphQL type called Bookstore with no fields yet.
GraphQL
Hint
Start by writing type Bookstore { } to define the type.
2
Add the books field
Inside the Bookstore type, add a field called books with type [String] to represent a list of book titles.
GraphQL
Hint
Use square brackets [] around String to make it a list type.
3
Make the books list non-nullable
Modify the books field so that the list itself cannot be null by adding an exclamation mark ! after the list type.
GraphQL
Hint
Add ! after the list type to make the list non-nullable.
4
Make the book titles non-nullable
Modify the books field so that each book title inside the list is also non-nullable by adding an exclamation mark ! after String inside the list.
GraphQL
Hint
Add ! after String inside the brackets to make each item non-nullable.
Practice
(1/5)
1. What does a list type in GraphQL represent? [Int] means a list of what?
easy
A. A string value
B. A single integer
C. A collection of integers
D. A boolean value
Solution
Step 1: Understand list notation in GraphQL
Square brackets [] indicate a list type that holds multiple values of the same type.
Step 2: Interpret [Int]
This means a list containing zero or more integers.
Final Answer:
A collection of integers -> Option C
Quick Check:
List type = multiple values [OK]
Hint: Square brackets mean list of that type [OK]
Common Mistakes:
Thinking it holds a single value
Confusing list with string or boolean
Ignoring the brackets meaning
2. Which of the following is the correct syntax to define a list of strings in GraphQL?
easy
A. string[]
B. [String]
C. (String[])
D. {String}
Solution
Step 1: Recall GraphQL list syntax
GraphQL uses square brackets [] around a type to define a list.
Step 2: Identify correct option
[String] is the correct way to define a list of strings in GraphQL.
Final Answer:
[String] -> Option B
Quick Check:
List syntax = brackets around type [OK]
Hint: Use square brackets around type for lists [OK]
Common Mistakes:
Using language-specific syntax like string[]
Using parentheses or curly braces instead of brackets
Missing brackets entirely
3. Given this GraphQL schema snippet:
type Query {
favoriteNumbers: [Int]
}
What is a valid response for favoriteNumbers?
medium
A. {1, 2, 3}
B. 42
C. "[1, 2, 3]"
D. [1, 2, 3]
Solution
Step 1: Understand the field type
favoriteNumbers is a list of integers, so the response must be a list (array) of numbers.
Step 2: Check each option
[1, 2, 3] is a list of integers. 42 is a single integer, not a list. "[1, 2, 3]" is a string, not a list. {1, 2, 3} uses curly braces which is invalid syntax.
Final Answer:
[1, 2, 3] -> Option D
Quick Check:
List field returns list value [OK]
Hint: List fields return arrays, not single values [OK]
Common Mistakes:
Returning a single value instead of a list
Returning a string instead of a list
Using wrong brackets for lists
4. Identify the error in this GraphQL list type declaration:
type User {
tags: [String
}
medium
A. Missing closing bracket "]" for the list type
B. List types cannot hold strings
C. Square brackets should be replaced with parentheses
D. Field name cannot be "tags"
Solution
Step 1: Check list type syntax
List types require both opening and closing square brackets around the type.
Step 2: Locate syntax error
The closing bracket "]" is missing after String, causing a syntax error.
Final Answer:
Missing closing bracket "]" for the list type -> Option A
Quick Check:
List syntax needs matching brackets [OK]
Hint: Always close brackets in list types [OK]
Common Mistakes:
Forgetting the closing bracket
Using wrong brackets like parentheses
Thinking list can't hold strings
5. You want to define a GraphQL field that can return null or a list of non-null integers, but the list itself can be empty. Which type declaration is correct?
hard
A. [Int!]
B. [Int]!
C. [Int!]!
D. Int!
Solution
Step 1: Understand non-null and list syntax
Int! means non-null integer, [Int!] means list of non-null integers, list itself can be null or empty.
Step 2: Analyze options
[Int!]: List of non-null integers, list nullable (can be empty).[Int]!: Non-null list of nullable integers.[Int!]!: Non-null list of non-null integers (list cannot be null).Int!: Single non-null integer, not a list.
Final Answer:
[Int!] -> Option A
Quick Check:
Non-null items inside nullable list = [Int!] [OK]
Hint: Non-null items inside list use [Type!] [OK]
Common Mistakes:
Making list itself non-null when it should be nullable
Confusing non-null item vs non-null list
Using single type instead of list
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.