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.

ParadigmaFormat / TransportKommunikationTypischer Einsatz
RESTJSON über HTTPRequest/Response, gut cachebarBreite, öffentliche Web-APIs
GraphQLJSON, eine flexible Query über HTTPRequest/Response, genau die FelderFlexible, verschachtelte Daten für Frontends
gRPCProtocol Buffers (binär), HTTP/2RPC, schnell und stark typisiertInterne Microservices im Backend
SOAPXML mit festen VerträgenRequest/Response, strikt standardisiertFormale Enterprise-Integrationen
WebSocketsBeliebig, dauerhafte VerbindungBidirektional, 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-Query
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

Weiterlesen