📖 Scenario: You are creating a simple GraphQL API for a bookstore. The API needs to define a schema that includes different scalar types to represent book details.
🎯 Goal: Build a GraphQL schema that defines a Book type using scalar types: String, Int, Float, Boolean, and ID.
📋 What You'll Learn
Create a Book type with fields using the scalar types
Use ID for the book's unique identifier
Use String for the title and author
Use Int for the number of pages
Use Float for the price
Use Boolean for availability status
💡 Why This Matters
🌍 Real World
GraphQL schemas are used to define the structure of data in APIs, making it easier for clients to request exactly what they need.
💼 Career
Understanding scalar types in GraphQL is essential for backend developers building APIs and frontend developers querying data efficiently.
Progress0 / 4 steps
1
Define the Book type with ID and String fields
Create a GraphQL type called Book with two fields: id of type ID! and title of type String!.
GraphQL
Hint
Use ID! for unique identifiers and String! for text fields.
2
Add Int and Float fields to Book
Add two more fields to the Book type: pages of type Int! and price of type Float!.
GraphQL
Hint
Use Int! for whole numbers and Float! for decimal numbers.
3
Add Boolean field to Book
Add a available field of type Boolean! to the Book type to indicate if the book is in stock.
GraphQL
Hint
Use Boolean! for true/false values.
4
Add author field with String type
Add an author field of type String! to the Book type to store the author's name.
GraphQL
Hint
Use String! for text fields like author names.
Practice
(1/5)
1. Which of the following is NOT a standard GraphQL scalar type?
easy
A. Boolean
B. String
C. Date
D. ID
Solution
Step 1: Recall standard GraphQL scalar types
The standard scalar types are String, Int, Float, Boolean, and ID.
Step 2: Identify the non-standard type
Date is not a built-in scalar type in GraphQL; it requires a custom scalar.
Final Answer:
Date -> Option C
Quick Check:
Standard scalars exclude Date [OK]
Hint: Remember only 5 built-in scalars: String, Int, Float, Boolean, ID [OK]
Common Mistakes:
Thinking Date is built-in
Confusing ID with Int
Assuming Boolean is custom
2. Which of the following is the correct way to declare a field of type ID in a GraphQL schema?
easy
A. userId: id
B. userId: Int
C. userId: String!
D. userId: ID!
Solution
Step 1: Understand GraphQL type syntax
Types are case-sensitive; ID must be uppercase and non-null indicated by !.
Step 2: Check each option
userId: ID! uses correct type 'ID!' with uppercase and non-null. Others are either lowercase or wrong type.
Final Answer:
userId: ID! -> Option D
Quick Check:
ID type is uppercase and non-null with ! [OK]
Hint: ID type is uppercase and ! means non-null [OK]
Common Mistakes:
Using lowercase 'id'
Confusing ID with String
Omitting ! for required fields
3. Given this GraphQL query result for a field declared as Float: { price: 19 } What is the actual type of the returned value?
medium
A. Float
B. String
C. Integer
D. Boolean
Solution
Step 1: Understand GraphQL Float type
Float represents decimal numbers but can also return whole numbers as floats.
Step 2: Analyze the value 19
Even though 19 looks like an integer, GraphQL returns it as a Float type because the field is Float.
Final Answer:
Float -> Option A
Quick Check:
Float fields return numbers as floats, even whole numbers [OK]
Hint: Float fields always return float type, even if whole number [OK]
Common Mistakes:
Assuming 19 is Integer
Thinking Float must have decimal point
Confusing with String
4. Identify the error in this GraphQL schema snippet:
type Product {
id: ID
name: String!
price: float
inStock: Boolean
}
medium
A. 'Boolean' should be lowercase 'boolean'
B. 'float' should be 'Float' with uppercase F
C. 'ID' should be 'Id' with lowercase d
D. 'String!' should be 'String' without exclamation mark
Solution
Step 1: Check scalar type capitalization
GraphQL scalar types are case-sensitive; 'Float' must be capitalized.
Step 2: Verify other types
'Boolean' and 'ID' are correctly capitalized; 'String!' is valid for non-null.
Final Answer:
'float' should be 'Float' with uppercase F -> Option B
Quick Check:
Scalar types must be capitalized exactly [OK]
Hint: Scalar types always start with uppercase letter [OK]
Common Mistakes:
Using lowercase scalar types
Changing Boolean case
Removing ! from non-null
5. You want to store a unique identifier for users that is a string but should never be null. Which scalar type and modifier combination is best in GraphQL schema?
hard
A. ID!
B. String
C. Int!
D. Boolean!
Solution
Step 1: Understand the purpose of ID scalar
ID is designed for unique identifiers and is serialized as string.
Step 2: Ensure non-null constraint
Adding ! means the field cannot be null, which fits the requirement.
Final Answer:
ID! -> Option A
Quick Check:
Use ID! for unique, non-null string identifiers [OK]
Hint: Use ID! for unique, required string IDs [OK]
Common Mistakes:
Using String without !
Using Int for string IDs
Using Boolean for IDs
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.