GraphQL vs REST

Over-fetching, Network Waterfalls & When to Use Which

Over-fetching & Under-fetching

A mobile app needs just 3 things: user name, avatar, and their 3 latest post titles. See how REST and GraphQL differ in what they return.

REST Approach

Two sequential requests, lots of wasted data

GET /users/1
GET /users/1/posts
~4.2 KB

GraphQL Approach

One request, exactly the data you need

POST /graphql
query {
  user(id: 1) {
    name
    avatar
    posts(limit: 3) {
      title
    }
  }
}
~0.3 KB

Network Waterfall Comparison

REST requires sequential round-trips when data depends on previous responses. GraphQL resolves everything server-side in a single request.

REST — 4 Sequential Requests

0ms100ms200ms300ms400ms550ms
GET /user/1
GET /user/1/posts
GET /posts/5/comments
GET /user/42
Total: --

GraphQL — 1 Request

0ms100ms200ms300ms400ms550ms
POST /graphql
Total: --

Response Size Analysis

GraphQL usually returns less data, but not always. The query language itself adds overhead for very simple requests.

REST
--
GraphQL
--

Decision Guide — When to Use Which

Check the criteria that apply to your project. The meter shows which approach fits best.

Use REST Neutral Use GraphQL
Check the criteria above to see a recommendation.