Ich habe verschiedene APIs und SDKs durchgesehen, als mir klar wurde, dass ich den Unterschied zwischen einer so genannten API und einer so genannten SDK nicht wirklich erkennen konnte .
Beide sind konzeptionell eine Möglichkeit für Ihr Programm, mit den Ressourcen einer anderen Software zu kommunizieren und diese zu steuern, unabhängig davon, ob es sich bei dieser anderen Software um einen Webdienst, eine Endbenutzer-App, einen Betriebssystemdienst, einen Dämon oder einen Kernel handelt Gerätetreiber.
Was ist der semantische Unterschied zwischen einem SDK und einer API?
terminology
api
semantics
sdk
KeithS
quelle
quelle
Antworten:
Ich denke, es fällt eher in die Richtung von "Alle SDKs sind / enthalten APIs, aber nicht alle APIs sind SDKs".
Ein SDK scheint ein vollständiger Satz von APIs zu sein, mit denen Sie die meisten Aktionen ausführen können, die Sie zum Erstellen von Anwendungen benötigen. Darüber hinaus kann ein SDK andere Tools zum Entwickeln für die Plattform / das Objekt enthalten, für das es bestimmt ist.
Eine API ist jedoch nur eine Reihe verwandter Methoden, die für einen bestimmten Zweck geeignet sein können.
Das JDK (Java Development Kit) enthält beispielsweise die API sowie die Compiler, Laufzeiten und andere verschiedene Tools. Die Java-API besteht einfach aus allen Bibliotheken, aus denen die Hauptsprache besteht, mit der Sie sofort arbeiten können.
quelle
Der eigentliche Unterschied besteht also darin, dass eine API nicht mehr oder weniger als eine Schnittstelle zu "einem bestimmten Dienst" ist, während ein SDK eine Reihe von Tools / Komponenten / Klassen für einen bestimmten Zweck ist. Ein SDK bietet Ihnen eine Schnittstelle zu einer API. Sie können jedoch eine API verwenden, ohne über die zugrunde liegenden Komponenten zu verfügen, z. B. wenn die API über einen Webdienst bereitgestellt wird.
Beispiele für APIs:
Beispiele für SDKs:
quelle
API → dokumentierte Schnittstelle (zu einem bestimmten Zeitpunkt und für eine bestimmte Zielgruppe. Die Dokumentation ist möglicherweise unvollständig und / oder für die breite Öffentlichkeit nicht verfügbar. Dies ist möglicherweise absichtlich, mindert jedoch nicht die Tatsache, dass sie dokumentiert werden soll für Dritte zu verwenden.)
SDK → Schnittstellendokumentation (+ Beispiele & Tools)
quelle
"SDK" ist im weiteren Sinne kollektiv als "API".
In der Regel finden Sie nur ein SDK, das eine gesamte Plattform abdeckt. Es gibt beispielsweise ein MacOS X SDK und ein iOS SDK, die jeweils die APIs für viele verschiedene Funktionsbereiche enthalten.
"API" wurde ursprünglich auch als Sammelbegriff verwendet und wird immer noch häufig auf diese Weise verwendet (MAPI, WSAPI usw.), ist jedoch in der Regel auf eine bestimmte Technologie beschränkt. Der durch die "API" implizierte Anwendungsbereich scheint sich im Laufe der Jahre verringert zu haben. Früher sprachen die Leute über die "Mac Toolbox API" oder die "Windows API", die beide offensichtlich viele Funktionen enthielten . Heutzutage ist es nicht ungewöhnlich, dass "API" eine einzelne Systemfunktion bezeichnet. Man könnte sagen, dass eine neue Version eines Betriebssystems Hunderte neuer APIs enthält, und was gemeint ist, sind Hunderte neuer Systemaufrufe.
Keiner der Begriffe ist ohne Kontext sehr präzise.
quelle
Was ist API?
API ist eine Schnittstelle, über die Softwareprogramme miteinander interagieren können. Es definiert eine Reihe von Regeln, die von den Programmen befolgt werden müssen, um miteinander zu kommunizieren. APIs geben im Allgemeinen an, wie die Routinen, Datenstrukturen usw. definiert werden sollen, damit zwei Anwendungen kommunizieren können. APIs unterscheiden sich in der von ihnen bereitgestellten Funktionalität. Es gibt allgemeine APIs, die Bibliotheksfunktionalitäten einer Programmiersprache wie der Java-API bereitstellen. Es gibt auch APIs, die bestimmte Funktionen bereitstellen, z. B. die Google Maps-API. Es gibt auch sprachabhängige APIs, die nur von einer bestimmten Programmiersprache verwendet werden können. Darüber hinaus gibt es sprachunabhängige APIs, die mit mehreren Programmiersprachen verwendet werden können. APIs müssen sehr sorgfältig implementiert werden, indem nur die erforderlichen Funktionen oder Daten nach außen freigegeben werden, während auf die anderen Teile der Anwendung nicht zugegriffen werden kann. Die Verwendung von APIs ist im Internet sehr populär geworden. Es ist weit verbreitet, einige der Funktionen und Daten über eine API nach außen im Web zuzulassen. Diese Funktionalität kann kombiniert werden, um den Benutzern eine verbesserte Funktionalität anzubieten.
Was ist SDK?
SDK ist eine Reihe von Tools, mit denen Softwareanwendungen für eine bestimmte Plattform entwickelt werden können. Zu den SDKs gehören Tools, Bibliotheken, Dokumentation und Beispielcode, mit denen ein Programmierer eine Anwendung entwickeln kann. Die meisten SDKs können aus dem Internet heruntergeladen werden, und viele der SDKs werden kostenlos zur Verfügung gestellt, um die Programmierer zur Verwendung der Programmiersprache des SDK zu ermutigen. Einige weit verbreitete SDKs sind Java SDK (JDK), das alle Bibliotheken, Debugging-Dienstprogramme usw. enthält und das Schreiben von Programmen in Java erheblich vereinfacht. SDKs vereinfachen das Leben eines Softwareentwicklers, da keine Komponenten / Tools gesucht werden müssen, die miteinander kompatibel sind, und alle in einem einzigen Paket integriert sind, das einfach zu installieren ist.
Was ist der Unterschied zwischen API und SDK?
API ist eine Schnittstelle, über die Softwareprogramme miteinander interagieren können, wohingegen ein SDK eine Reihe von Tools ist, mit denen Softwareanwendungen für eine bestimmte Plattform entwickelt werden können. Die einfachste Version eines SDK kann eine API sein, die einige Dateien enthält, die für die Interaktion mit einer bestimmten Programmiersprache erforderlich sind. So kann eine API als einfaches SDK ohne jegliche Debugging-Unterstützung usw. angesehen werden.
quelle
Ein SDK kann nichts anderes als eine API sein (Dateien, die als Schnittstelle zu einer anderen App dienen), enthält jedoch normalerweise anderen Code, der beim Debuggen und anderen Komponenten für Ihre IDE hilfreich ist.
Ich habe keine Akronyme mehr.
quelle
Alles, was zuvor erwähnt wurde, ist wahr, aber zu SDK möchte ich hinzufügen, dass ein Software Development Kit ein wirklich vollständiges Paket mit (fast) allen notwendigen Tools für den Entwicklungsprozess ist (oder sein sollte), während API "nur" eine Schnittstelle ist interagieren mit.
quelle
Meine zwei Cent: Ich glaube, der Begriff API wird oft falsch verwendet.
Eine API ist eine Anwendungsprogrammierschnittstelle.
Obwohl es sich um einen peinlichen Namen handelt, bedeutet dies, dass es sich um eine Schnittstelle handelt . Eine Anwendung verfügt möglicherweise über eine API, über die andere Anwendungen mit ihr kommunizieren können. Eine Software (z. B. eine Klasse in einem OO-System) bietet möglicherweise eine API, mit der andere Module im System mit ihr kommunizieren können.
Der Begriff API wird jedoch häufig als Synonym für "Bibliothek" verwendet. Ich denke nicht, dass dies eine korrekte Verwendung des Wortes ist. Ein Teil der Bibliothek ist eine API, mit der Code sie verwenden kann, die Bibliothek ist jedoch keine API.
Und ein SDK ist eine Art Bibliothek, also könnte das Verwirrung stiften.
quelle
Viele der anderen Antworten erklären , dass ein SDK Werkzeuge , aber keiner von ihnen direkt kommt heraus und sagt , dass eine API - a - Spezifikation .
Die API für Compoonent X enthält alle Informationen, die Sie benötigen, um eine andere Komponente zu schreiben, die mit X interagiert. Ein SDK für Komponente X enthält möglicherweise Bibliotheksroutinen , die Ihnen das Schreiben dieser Komponente erleichtern, die Bibliotheken jedoch nicht die API: Sie sind lediglich eine Verkörperung der API.
quelle
Ich würde gerne so vergleichen.
Wenn Sie ein Entwickler sind, der Microsoft Tools verwendet:
Wenn Sie ein Entwickler sind, der Java verwendet:
Ich denke, ein SDK müsste unbedingt auf eine entsprechende API angewiesen sein - es gibt kein SDK ohne API.
quelle
Hier ist eine einfache Analogie ... APIs sind wie Wörter, die Sie verwenden können, und SDKs sind wie Sätze, die für Sie zusammengestellt wurden.
quelle
Da Anwendungen durch die Anbindung an andere Anwendungen entwickelt und erweitert werden, müssen andere Anwendungen (Logik) mit der Kernlogik verbunden werden können - dies erfolgt über einen definierten Satz von APIs. SDK wird verwendet, um Code zu erstellen / zu erstellen, der APIs verwendet, um mit anderen Anwendungen zu interagieren.
quelle