REST für einfaches CRUD, GraphQL für flexible Frontends, gRPC für Microservices.
REST¶
- HTTP-Verben (GET, POST, PUT, DELETE)
- Ressourcenbasiertes URL-Design
- Einfach, gut verstanden
- Over-Fetching / Under-Fetching Problem
GraphQL¶
- Single Endpoint, Client definiert die Antwort
- Kein Over/Under-Fetching
- Stark typisiertes Schema
- Introspection und Tooling
- Komplexere Serverseite
gRPC¶
- Protocol Buffers (binär)
- HTTP/2 Streaming
- Code-Generierung (protoc)
- Extrem schnell
- Weniger geeignet für Browser
Wann was verwenden¶
- REST — öffentliche APIs, einfaches CRUD, die meisten Projekte
- GraphQL — Mobile/Web-Apps mit komplexer UI, mehrere Datenquellen
- gRPC — Microservices-Kommunikation, niedrige Latenz, Streaming
REST ist der Standard¶
REST für die meisten Fälle. GraphQL für datenintensive Frontends. gRPC für Inter-Service-Kommunikation.
restgraphqlgrpcapi