Bird
Raised Fist0
GraphQLquery~10 mins

Query arguments 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 define a query that takes an argument called 'id'.

GraphQL
query getUser($[1]: ID!) { user(id: $[1]) { name } }
Drag options to blanks, or click blank then click option'
Aid
BuserId
Cname
Dinput
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different argument name than the variable used in the query.
Forgetting to specify the argument type.
2fill in blank
medium

Complete the code to pass the argument value when calling the query.

GraphQL
query getUser($id: ID!) { user(id: [1]) { email } }
Drag options to blanks, or click blank then click option'
AuserId
Bid
C$id
Dinput
Attempts:
3 left
💡 Hint
Common Mistakes
Using the argument name without '$' inside the query.
Passing a different variable name than declared.
3fill in blank
hard

Fix the error in the query argument declaration.

GraphQL
query getPost($postId: [1]) { post(id: $postId) { title } }
Drag options to blanks, or click blank then click option'
ABoolean
BString
CInt
DID!
Attempts:
3 left
💡 Hint
Common Mistakes
Using a nullable type when the argument is required.
Using the wrong type for an ID argument.
4fill in blank
hard

Fill both blanks to define a query with two arguments: 'limit' and 'offset'.

GraphQL
query getItems($limit: [1], $offset: [2]) { items(limit: $limit, offset: $offset) { id name } }
Drag options to blanks, or click blank then click option'
AInt!
BString
CInt
DBoolean
Attempts:
3 left
💡 Hint
Common Mistakes
Making both arguments required or both optional incorrectly.
Using wrong types like String or Boolean for numeric arguments.
5fill in blank
hard

Fill all three blanks to define a query with arguments 'search', 'limit', and 'offset' with correct types.

GraphQL
query searchItems($search: [1], $limit: [2], $offset: [3]) { items(search: $search, limit: $limit, offset: $offset) { id description } }
Drag options to blanks, or click blank then click option'
AString!
BInt!
CInt
DBoolean
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to mark required arguments with '!'.
Using Boolean type for non-boolean arguments.

Practice

(1/5)
1. What is the purpose of query arguments in GraphQL?
easy
A. To write comments inside queries
B. To define new types in the schema
C. To specify exactly what data you want from the server
D. To create mutations for updating data

Solution

  1. Step 1: Understand what query arguments do

    Query arguments allow you to tell the server exactly which data you want, like filtering or limiting results.
  2. Step 2: Compare options to the purpose

    Only To specify exactly what data you want from the server describes specifying data in queries. Other options describe unrelated tasks.
  3. Final Answer:

    To specify exactly what data you want from the server -> Option C
  4. Quick Check:

    Query arguments = specify data [OK]
Hint: Arguments filter or limit data inside parentheses [OK]
Common Mistakes:
  • Confusing arguments with schema definitions
  • Thinking arguments create mutations
  • Using arguments for comments
2. Which of the following is the correct syntax to pass an argument named id with value 5 to a GraphQL query field user?
easy
A. user(id: 5) { name }
B. user[id=5] { name }
C. user{id=5} { name }
D. user(id=5) { name }

Solution

  1. Step 1: Recall GraphQL argument syntax

    Arguments go inside parentheses after the field name, with colon separating name and value.
  2. Step 2: Check each option's syntax

    user(id: 5) { name } uses parentheses and colon correctly. Options B and C use brackets or braces incorrectly. user(id=5) { name } uses equals sign instead of colon.
  3. Final Answer:

    user(id: 5) { name } -> Option A
  4. Quick Check:

    Arguments use (name: value) syntax [OK]
Hint: Use parentheses and colon for arguments (name: value) [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Using equals sign instead of colon
  • Placing arguments inside braces
3. Given the query { books(limit: 2) { title } } and a database with books titled 'A', 'B', 'C', what will the query return?
medium
A. [{ title: 'A' }, { title: 'B' }, { title: 'C' }]
B. [] (empty list)
C. Error: 'limit' is not a valid argument
D. [{ title: 'A' }, { title: 'B' }]

Solution

  1. Step 1: Understand the limit argument

    The limit: 2 argument restricts the number of returned books to 2.
  2. Step 2: Predict the returned data

    From books 'A', 'B', 'C', only the first two 'A' and 'B' will be returned.
  3. Final Answer:

    [{ title: 'A' }, { title: 'B' }] -> Option D
  4. Quick Check:

    limit: 2 returns 2 items [OK]
Hint: Limit argument restricts number of results [OK]
Common Mistakes:
  • Assuming all items return ignoring limit
  • Thinking limit causes error
  • Expecting empty list when data exists
4. Identify the error in this GraphQL query: { users(age: 'twenty') { name } } assuming age expects an integer argument.
medium
A. The field name 'users' is invalid
B. The argument value should be an integer, not a string
C. Missing curly braces around the argument
D. The query is correct and will run without errors

Solution

  1. Step 1: Check argument type requirements

    The age argument expects an integer, but the query passes a string 'twenty'.
  2. Step 2: Identify the type mismatch error

    Passing a string instead of an integer causes a type error in GraphQL.
  3. Final Answer:

    The argument value should be an integer, not a string -> Option B
  4. Quick Check:

    Argument types must match schema [OK]
Hint: Match argument types exactly as defined [OK]
Common Mistakes:
  • Passing strings instead of numbers
  • Assuming field names cause errors
  • Thinking braces are needed around arguments
5. You want to query a list of products sorted by price descending and limited to 3 items. Which query correctly uses arguments to achieve this?
hard
A. { products(sortBy: "price_desc", limit: 3) { name price } }
B. { products(limit: 3, order: "desc") { name price } }
C. { products(sort: price, limit: 3) { name price } }
D. { products(limit: 3, sortBy: "desc_price") { name price } }

Solution

  1. Step 1: Identify correct argument names and values

    The argument sortBy with value "price_desc" clearly indicates sorting by price descending. The limit argument limits results to 3.
  2. Step 2: Evaluate each option's correctness

    { products(sortBy: "price_desc", limit: 3) { name price } } uses both arguments correctly. { products(limit: 3, order: "desc") { name price } } uses 'order' which may be invalid. { products(sort: price, limit: 3) { name price } } uses 'sort' without quotes and no direction. { products(limit: 3, sortBy: "desc_price") { name price } } uses 'desc_price' which is not standard.
  3. Final Answer:

    { products(sortBy: "price_desc", limit: 3) { name price } } -> Option A
  4. Quick Check:

    Use correct argument names and values [OK]
Hint: Use exact argument names and values from schema [OK]
Common Mistakes:
  • Using wrong argument names like 'order' or 'sort'
  • Passing unquoted values for strings
  • Mixing argument order incorrectly
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