SOAP vs. REST vs. GraphQL
SOAP, REST und GraphQL sind drei unterschiedliche Stile für den Aufbau von APIs, die sich in Protokoll, Flexibilität und Einsatzgebieten unterscheiden.
Kompakte Beschreibung
SOAP, REST und GraphQL repräsentieren drei Generationen von API-Architekturen. SOAP ist ein protokollschwerer, standardisierter Webservice-Ansatz, der auf XML und festen Verträgen basiert. REST nutzt die bestehenden HTTP-Methoden und ist ressourcenorientiert, leichtgewichtig und weit verbreitet. GraphQL ist eine Abfragesprache, die es Clients erlaubt, genau die Daten anzufordern, die sie benötigen. SOAP eignet sich besonders für Enterprise-Umgebungen mit strengen Sicherheits- und Transaktionsanforderungen. REST ist der de-facto-Standard für Web-APIs und besonders gut skalierbar. GraphQL punktet bei komplexen, vernetzten Daten und mobilen Anwendungen, bei denen Bandbreite und Anfragewünsche wichtig sind. Die Wahl des Stils hängt von den Anforderungen an Sicherheit, Flexibilität, Performance und bestehende Infrastruktur ab.
Wichtige Komponenten
SOAP
SOAP steht für Simple Object Access Protocol. Es ist ein Protokollstandard für den Austausch von Nachrichten über Netzwerke. SOAP-Nachrichten sind in XML verpackt und folgen einer strengen Struktur. SOAP wird oft über HTTP oder SMTP transportiert und bietet integrierte Standards für Sicherheit, Transaktionen und Zuverlässigkeit. WSDL-Dateien beschreiben den Vertrag zwischen Client und Server. SOAP ist besonders in Unternehmensumgebungen verbreitet, wo formale Verträge und WS-* Standards gefordert sind.
REST
REST steht für Representational State Transfer. Es ist kein Protokoll, sondern ein Architekturstil. REST APIs nutzen URLs für Ressourcen und HTTP-Methoden für Aktionen. Daten werden meist als JSON oder XML ausgetauscht. REST ist zustandslos, ressourcenorientiert und leicht zu verstehen. Es ist der gängige Standard für moderne Web-APIs, Microservices und öffentliche Schnittstellen.
GraphQL
GraphQL ist eine Abfragesprache und Laufzeitumgebung für APIs, die von Facebook entwickelt wurde. Clients senden eine Query, die genau die gewünschten Felder und Beziehungen beschreibt. Der Server liefert nur diese Daten zurück. GraphQL eignet sich besonders für komplexe Datenmodelle, mobile Clients und Situationen, in denen viele unterschiedliche Clients unterschiedliche Daten benötigen.
Protokoll und Transport
SOAP verwendet meist HTTP oder SMTP als Transport, die Nachricht selbst ist jedoch unabhängig vom Transport. REST baut direkt auf HTTP auf und nutzt dessen Methoden und Statuscodes. GraphQL wird meist über HTTP mit POST oder über WebSockets für Subscriptions übertragen.
Datenformat
SOAP verwendet ausschließlich XML. REST nutzt in der Regel JSON, kann aber auch XML, YAML oder andere Formate unterstützen. GraphQL verwendet ein eigenes Schema mit Queries, Mutations und Subscriptions, die typischerweise als JSON übertragen werden.
Flexibilität und Overfetching
REST kann zu Overfetching führen, wenn ein Endpunkt mehr Daten liefert als der Client benötigt. GraphQL vermeidet Overfetching und Underfetching, weil der Client genau die Felder auswählt. SOAP ist sehr streng und flexibel in dem Sinne, dass der Vertrag genau definiert, was erlaubt ist, aber weniger frei für Ad-hoc-Abfragen.
Caching
REST profitiert stark vom HTTP-Caching, weil URLs und Methoden cachebar sind. SOAP ist weniger cachefreundlich, weil Nachrichten oft im Body verpackt sind. GraphQL erfordert spezialisierte Caching-Lösungen, weil Queries im Body übertragen werden und URLs nicht allein den Cache-Schlüssel bilden.
Sicherheit
SOAP bietet eingebaute Sicherheitsstandards wie WS-Security, die Verschlüsselung und Signatur auf Nachrichtenebene ermöglichen. REST nutzt meist TLS, OAuth und JWT auf Transportschicht. GraphQL setzt ebenfalls auf TLS und Token, erfordert aber zusätzliche Maßnahmen wie Query-Komplexitätsbegrenzung und Autorisierung auf Feldebene.
Einsatzgebiete
SOAP wird bevorzugt in Enterprise-Umgebungen, Banken und Systemen mit hohen Sicherheits- und Transaktionsanforderungen. REST ist der Standard für Web-APIs, Mobile Apps und Microservices. GraphQL ist ideal für komplexe Datenlandschaften, mobile Endgeräte und Aggregationsschichten.
Tooling und Ökosystem
REST hat das größte Ökosystem mit Tools wie Postman, Swagger, OpenAPI und vielen Frameworks. GraphQL bietet Apollo, Relay, GraphiQL und codegen. SOAP wird von älteren Enterprise-Toolsets, Java-Frameworks und .NET WCF unterstützt.
Praxisbeispiel
Ein E-Commerce-Unternehmen möchte eine Produktsuche für verschiedene Clients bereitstellen.
SOAP Anfrage:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetProductRequest xmlns="http://shop.example.com/">
<ProductId>42</ProductId>
</GetProductRequest>
</soap:Body>
</soap:Envelope>
REST Anfrage:
GET /api/v1/products/42
Accept: application/json
GraphQL Query:
query {
product(id: "42") {
name
price
category {
name
}
}
}
Die SOAP-Anfrage ist stark strukturiert und erfordert XML-Validierung. Die REST-Anfrage ist einfach und cachefähig. Die GraphQL-Query liefert genau die gewünschten Felder, auch aus verschachtelten Beziehungen.
FAQ: SOAP vs. REST vs. GraphQL
1. Was ist der Hauptunterschied zwischen SOAP und REST?
2. Was ist GraphQL?
3. Wann sollte man SOAP verwenden?
4. Wann ist REST die beste Wahl?
5. Wann ist GraphQL sinnvoll?
6. Was ist Overfetching?
7. Was ist Underfetching?
8. Ist REST besser als SOAP?
9. Was ist eine WSDL?
10. Was ist ein Resolver in GraphQL?
11. Ist GraphQL ein Ersatz für REST?
12. Wie unterscheiden sich die Datenformate?
13. Was ist besser für Caching?
14. Was ist WS-Security?
15. Welche API-Architektur ist für Prüfungen wichtig?
Weiter im API Lernpfad
Der nächste Artikel im API Lernpfad behandelt gRPC, GraphQL, REST im Vergleich — Performance, Protokolle und Einsatzgebiete der drei API-Architekturen im direkten Vergleich.
Quellen
- https://www.w3.org/TR/soap12-part1/
- https://www.rfc-editor.org/rfc/rfc9110
- https://graphql.org/learn/
Buchempfehlungen zur API-Entwicklung
Wenn Du Dich weiter mit SOAP, REST, GraphQL und API-Design beschäftigen möchtest, empfehlen wir Dir die folgenden Bücher:
API-Entwicklung
Bücher über API-Design, REST, GraphQL, OpenAPI und API-Architektur
REST und HTTP: Entwicklung und Integration nach REST-Prinzipien von Stefan Tilkov
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.
API-Design: Praxishandbuch für Java- und Webservice-Entwickler
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.
Microservices: Grundlagen flexibler Softwarearchitekturen von Eberhard Wolff
Bei Amazon ansehenAffiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.






