Choosing the right API paradigm is critical. It’s not about which is “better,” but which fits the consumption model.
Decision Matrix
| Feature | REST | gRPC | GraphQL |
|---|---|---|---|
| Protocol | HTTP/1.1 | HTTP/2 | HTTP/1.1 or 2 |
| Data Format | JSON | Protobuf (Binary) | JSON |
| Use Case | Public APIs | Internal Microservices | Mobile/Frontend BFF |
| Browser Support | Native | Requires Proxy (gRPC-Web) | Native |
Why GraphQL for Frontend?
Avoids over-fetching. The client defines the response structure.
query {
user(id: 1) {
name
posts {
title # Only get title, not content!
}
}
}
Key Takeaways
- Use **gRPC** for service-to-service (backend) communication.
- Use **GraphQL** for flexible data fetching from clients.
- Use **REST** for public APIs where simplicity and caching matter completely.
Discover more from C4: Container, Code, Cloud & Context
Subscribe to get the latest posts sent to your email.