Bei der Wahl eines API-Stils geht es vor allem darum, wie Client und Server Daten austauschen und wofür die Schnittstelle gedacht ist. Die fünf gängigen Ansätze unterscheiden sich in Datenformat, Flexibilität und Kommunikationsmuster.
| Paradigma | Format / Transport | Kommunikation | Typischer Einsatz |
|---|---|---|---|
| REST | JSON über HTTP | Request/Response, gut cachebar | Breite, öffentliche Web-APIs |
| GraphQL | JSON, eine flexible Query über HTTP | Request/Response, genau die Felder | Flexible, verschachtelte Daten für Frontends |
| gRPC | Protocol Buffers (binär), HTTP/2 | RPC, schnell und stark typisiert | Interne Microservices im Backend |
| SOAP | XML mit festen Verträgen | Request/Response, strikt standardisiert | Formale Enterprise-Integrationen |
| WebSockets | Beliebig, dauerhafte Verbindung | Bidirektional, Echtzeit (Push) | Chats, Live-Updates, Dashboards |
Mehr Tiefe je Stil: REST, GraphQL, gRPC und Echtzeit & Events.
In der Praxis schließen sich diese Stile nicht aus: REST und GraphQL können sich denselben Datenbestand teilen, gRPC dominiert intern zwischen Services, und WebSockets ergänzen Request-Response-APIs um den Echtzeit-Kanal.
GraphQL-Anfrage: genau die gewünschten Felder
{
user(id: "42") {
name
email
posts(last: 2) { title }
}
}GraphQL: Eine einzige Anfrage liefert genau die angeforderten Felder, hier Name, E-Mail und die letzten zwei Beiträge eines Nutzers.
Quellen
- Learn GraphQL GraphQL.org
- Introduction to gRPC gRPC.io
- The WebSocket API (WebSockets) MDN Web Docs
- What is the Difference Between GraphQL and REST? Amazon Web Services (AWS)