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.