Bird
Raised Fist0
GraphQLquery~5 mins

Subscription syntax in GraphQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a GraphQL subscription?
A GraphQL subscription is a way to get real-time updates from the server. It keeps a connection open and sends data when something changes.
Click to reveal answer
beginner
Basic syntax to start a subscription in GraphQL?
Use the subscription keyword followed by the subscription name and the fields you want to receive updates for.
Click to reveal answer
intermediate
How do you specify which events to listen to in a subscription?
Inside the subscription, you specify the event or data field you want updates for, similar to a query but it listens continuously.
Click to reveal answer
beginner
Example of a simple subscription for new messages?
subscription { newMessage { id content sender } } This listens for new messages and returns their id, content, and sender.
Click to reveal answer
intermediate
Why use subscriptions instead of queries for real-time data?
Queries fetch data once. Subscriptions keep the connection open and send updates automatically when data changes, saving time and resources.
Click to reveal answer
Which keyword starts a GraphQL subscription?
Aquery
Bsubscription
Cmutation
Dlisten
What does a subscription do?
AFetches data once
BUpdates data on the server
CKeeps connection open for real-time updates
DDeletes data
Which of these is a valid subscription field selection?
Asubscription { newMessage { id content } }
Bquery { newMessage { id content } }
Cmutation { newMessage { id content } }
Dlisten { newMessage { id content } }
Subscriptions are best used for:
AOne-time data fetch
BBatch processing
CData deletion
DReal-time data updates
Which statement is true about GraphQL subscriptions?
AThey listen for events and send data continuously
BThey use the same syntax as mutations
CThey close the connection after one response
DThey cannot specify fields to return
Explain how to write a basic GraphQL subscription and what it does.
Think about how subscriptions differ from queries.
You got /3 concepts.
    Describe why and when you would use a subscription instead of a query in GraphQL.
    Consider the difference between one-time fetch and live updates.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a subscription in GraphQL?
      easy
      A. To delete data from the database
      B. To receive real-time updates automatically when data changes
      C. To fetch data only once from the server
      D. To update data on the server

      Solution

      1. Step 1: Understand the role of subscription

        Subscriptions are designed to keep the client updated automatically when data changes, without asking repeatedly.
      2. Step 2: Compare with other operations

        Queries fetch data once, mutations change data, but subscriptions listen for live updates.
      3. Final Answer:

        To receive real-time updates automatically when data changes -> Option B
      4. Quick Check:

        Subscription = live updates [OK]
      Hint: Subscriptions push updates; queries pull once [OK]
      Common Mistakes:
      • Confusing subscription with query or mutation
      • Thinking subscription fetches data only once
      • Assuming subscription modifies data
      2. Which of the following is the correct syntax to start a GraphQL subscription named newMessage requesting id and content fields?
      easy
      A. query { newMessage { id content } }
      B. mutation { newMessage { id content } }
      C. subscription { newMessage { id content } }
      D. subscribe { newMessage { id content } }

      Solution

      1. Step 1: Identify the correct keyword for subscription

        The keyword to start a subscription is subscription, not query, mutation, or subscribe.
      2. Step 2: Check the structure

        The subscription block should contain the event name and requested fields inside curly braces.
      3. Final Answer:

        subscription { newMessage { id content } } -> Option C
      4. Quick Check:

        Keyword subscription + fields = subscription { newMessage { id content } } [OK]
      Hint: Use 'subscription' keyword, not 'query' or 'mutation' [OK]
      Common Mistakes:
      • Using 'query' or 'mutation' instead of 'subscription'
      • Using 'subscribe' keyword which is invalid
      • Missing curly braces around fields
      3. Given the subscription below, what fields will the client receive when a new comment is added?
      subscription { newComment { id text author { name } } }
      medium
      A. id, text, and author name of the new comment
      B. Only id and text of the new comment
      C. Only author name of the new comment
      D. All comments in the database

      Solution

      1. Step 1: Analyze the subscription fields

        The subscription requests id, text, and nested author { name } fields for the newComment event.
      2. Step 2: Understand what is sent on event

        When a new comment is added, the client receives exactly these fields for that comment, not all comments.
      3. Final Answer:

        id, text, and author name of the new comment -> Option A
      4. Quick Check:

        Requested fields = id, text, author name [OK]
      Hint: Nested fields inside subscription are included in output [OK]
      Common Mistakes:
      • Assuming all comments are sent, not just new ones
      • Ignoring nested author name field
      • Thinking only scalar fields are sent
      4. Identify the error in this subscription syntax:
      subscription newMessage { id content }
      medium
      A. Missing curly braces around the subscription fields
      B. Subscription name cannot be 'newMessage'
      C. Subscription keyword should be 'query'
      D. Fields 'id' and 'content' should be inside the event name braces

      Solution

      1. Step 1: Check subscription structure

        The subscription must specify the event name followed by its fields inside braces, e.g., subscription { newMessage { id content } }.
      2. Step 2: Identify the error in given syntax

        The given syntax places fields directly after subscription name without nesting inside event braces.
      3. Final Answer:

        Fields 'id' and 'content' should be inside the event name braces -> Option D
      4. Quick Check:

        Fields must be nested inside event braces [OK]
      Hint: Fields must be inside event braces, not directly after subscription name [OK]
      Common Mistakes:
      • Placing fields outside event braces
      • Using 'query' instead of 'subscription'
      • Omitting braces entirely
      5. You want to subscribe to live updates of stock prices but only for stocks with price above 100. Which subscription syntax correctly applies this filter?
      hard
      A. subscription { stockPrice(price_gt: 100) { symbol price } }
      B. subscription { stockPrice { symbol price where price > 100 } }
      C. subscription { stockPrice { symbol price } filter: { price: { gt: 100 } } }
      D. subscription { stockPrice { symbol price } if price > 100 }

      Solution

      1. Step 1: Understand argument filtering in subscriptions

        GraphQL subscriptions accept arguments like queries, so filters are passed as arguments inside parentheses after the event name.
      2. Step 2: Identify correct filter syntax

        subscription { stockPrice(price_gt: 100) { symbol price } } uses price_gt: 100 as an argument, which is the standard way to filter for price greater than 100.
      3. Final Answer:

        subscription { stockPrice(price_gt: 100) { symbol price } } -> Option A
      4. Quick Check:

        Filters go as arguments inside parentheses [OK]
      Hint: Use arguments in parentheses for filtering subscriptions [OK]
      Common Mistakes:
      • Trying to filter inside field braces
      • Using invalid keywords like 'where' or 'if'
      • Placing filters outside subscription block
      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