Context Card
SDK vs. API
Was ist der Unterschied zwischen einem SDK und einer API?
Die kurze Antwort
Eine API ist eine Schnittstelle: der Vertrag aus Operationen, Datenformaten und Regeln, über den eine Software eine andere nutzt. Ein SDK ist ein Baukasten rund um eine oder mehrere APIs – Bibliotheken in einer Programmiersprache, Hilfen zur Authentifizierung, Beispiele, Werkzeuge und Dokumentation –, der die Nutzung der API einfacher und sicherer macht. Eine API kann ohne SDK bestehen; ein SDK beruht immer auf einer Schnittstelle.
Für: Technische Redakteure und Entwickler, die APIs und SDKs dokumentieren
Das Wichtigste
- Die API legt fest, was aufgerufen werden kann, mit welchen Daten und welchen Antworten.
- Das SDK setzt die Aufrufe in einer Programmiersprache um und übernimmt Authentifizierung, Wiederholungen, Paginierung und Fehlerbehandlung.
- Mehrere SDKs in verschiedenen Sprachen können dieselbe API kapseln; viele werden aus einer maschinenlesbaren Schnittstellenbeschreibung generiert.
- Versionierung betrifft beide: Eine API-Version ändert den Vertrag, eine SDK-Version die Bibliothek.
Der Zusammenhang
Vertrag und Baukasten
Eine Programmierschnittstelle ist ein Vertrag. Bei einer REST-API umfasst er Endpunkte, Methoden, Parameter, Datenformate und Fehlercodes. Der Schnittstellenvertrag gilt unabhängig davon, ob es eine Client-Bibliothek gibt.
Ein Software Development Kit baut darauf auf: Softwarebibliotheken, die API-Aufrufe in Funktionen einer Programmiersprache übersetzen, Hilfen zur Authentifizierung, Umgang mit Limits und Fehlern, Beispiele und Referenzdokumentation.
Warum der Unterschied zählt
API-Dokumentation beschreibt den Vertrag; SDK-Dokumentation beschreibt die Nutzung der Bibliothek – Installation, Konfiguration, typische Aufrufe. Beide brauchen Versionen: Semantische Versionierung des SDK ersetzt nicht die Versionierung der API, die es aufruft.
Siehe den Enzyklopädie-Artikel Developer SDKs (auf Englisch).
Fragen, die sich daran anschließen
- Kann ich eine API ohne ihr SDK nutzen?
- Meist ja, indem man die Anfragen direkt sendet. Das SDK spart Arbeit und vermeidet Fehler, etwa bei Tokens oder Wiederholungen.
- Ist eine Client-Bibliothek dasselbe wie ein SDK?
- Eine Client-Bibliothek ist der Kern eines Developer-SDK. Das SDK ergänzt meist Werkzeuge, Beispiele und Dokumentation.
Quellen
- OpenAPI Specification — OpenAPI Initiative
- RFC 6749: The OAuth 2.0 Authorization Framework — IETF, 1. Oktober 2012
Prüfprotokoll und Änderungen
Jede Context Card wird vor der Veröffentlichung und bei jeder Änderung erneut anhand ihrer Quellen geprüft; das Datum unter der Autorenzeile ist die letzte Prüfung. Korrekturen (etwas war falsch) und Ergänzungen (etwas fehlte) stehen unten mit Datum und Uhrzeit (deutsche Zeit). Tippfehler, Formatierung und Link-Korrekturen werden nicht aufgeführt.
Geprüft
Seit der Veröffentlichung keine Korrekturen oder Ergänzungen.