Notice: Function WP_Scripts::add was called incorrectly. The script with the handle "markdown-renderer" was enqueued with dependencies that are not registered: mermaid-js, prism-core. Please see Debugging in WordPress for more information. (This message was added in version 6.9.1.) in /home/dataadl/www/wp-includes/functions.php on line 6131

GraphQL vs gRPC vs REST: The 2021 Guide

Choosing the right API paradigm is critical. It’s not about which is “better,” but which fits the consumption model.

Decision Matrix

FeatureRESTgRPCGraphQL
ProtocolHTTP/1.1HTTP/2HTTP/1.1 or 2
Data FormatJSONProtobuf (Binary)JSON
Use CasePublic APIsInternal MicroservicesMobile/Frontend BFF
Browser SupportNativeRequires 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.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.