Je parcourais diverses API et kits de développement logiciel (SDK) lorsque je me suis rendu compte que je ne pouvais pas vraiment faire la différence entre une API et un kit SDK .
Conceptuellement, les deux sont un moyen pour votre programme d’interfacer et de contrôler les ressources fournies par un autre logiciel, qu’il s’agisse d’un service Web, d’une application pour utilisateur final, d’un service OS ou d’un démon, ou d’un noyau. pilote de périphérique.
Alors, quelle est la différence sémantique entre un SDK et une API?
terminology
api
semantics
sdk
KeithS
la source
la source
Réponses:
Je pense que cela va plutôt dans le sens de "Tous les SDK sont / contiennent des API mais tous les API ne sont pas des SDK".
Un SDK semble être un ensemble complet d’API qui vous permet d’effectuer la plupart des opérations nécessaires à la création d’applications. De plus, un SDK peut inclure d'autres outils de développement pour la plate-forme / l'article pour lequel il est destiné.
Une API, par contre, n’est qu’une série de méthodes associées qui peuvent être utiles dans un but spécifique.
Par exemple, le JDK (Java Development Kit) contient l’API, ainsi que les compilateurs, les environnements d’exécution et d’autres outils divers. L'API Java est simplement toutes les bibliothèques qui constituent le langage principal avec lequel vous pouvez travailler directement.
la source
La vraie différence est donc qu'une API n'est ni plus ni moins qu'une interface avec "un service", alors qu'un SDK est un ensemble d'outils / de composants / de classes destiné à un usage spécifique. Un SDK vous présente en fait une API pour l'interface. Mais vous pouvez utiliser une API sans avoir les composants sous-jacents, par exemple lorsque l'API est fournie via un service Web.
Exemples d'API:
Exemples de SDK:
la source
API → interface documentée (à un moment donné et pour un certain public. La documentation peut être incomplète et / ou inaccessible au grand public et cela peut être intentionnel, mais cela ne diminue en rien le fait qu'elle était censée être documentée. pour les tiers à l'utiliser.)
SDK → documentation de l'interface (+ exemples et outils)
la source
"SDK" est collectif dans un sens plus large que "API".
En général, vous ne trouvez qu'un seul SDK pour couvrir toute une plate-forme. Il existe par exemple un SDK MacOS X et un SDK iOS, chacun contenant les API pour de nombreux domaines de fonctionnalités.
Le terme "API" était également à l'origine un terme collectif, et il est encore souvent utilisé de cette façon (MAPI, WSAPI, etc.), mais il est généralement limité à une technologie particulière. La portée suggérée par "l'API" semble avoir diminué au fil des ans; les gens parlaient autrefois de "l'API Mac Toolbox" ou de "l'API Windows", qui contenaient évidemment beaucoup de fonctionnalités. De nos jours, il n’est pas rare d’entendre que le terme «API» désigne une fonction système unique; On peut dire qu'une nouvelle version d'un système d'exploitation contient des centaines de nouvelles API, ce qui signifie des centaines de nouveaux appels système.
Aucun terme n'est très précis sans contexte.
la source
Qu'est-ce qu'une API?
L'API est une interface qui permet aux logiciels d'interagir les uns avec les autres. Il définit un ensemble de règles qui doivent être suivies par les programmes pour communiquer les uns avec les autres. Les API spécifient généralement comment les routines, les structures de données, etc. doivent être définies pour que deux applications puissent communiquer. Les API diffèrent par la fonctionnalité fournie par elles. Il existe des API générales qui fournissent les fonctionnalités de bibliothèque d'un langage de programmation tel que l'API Java. Il existe également des API qui fournissent des fonctionnalités spécifiques telles que l'API Google Maps. Il existe également des API dépendantes du langage, qui ne peuvent être utilisées que par un langage de programmation spécifique. En outre, il existe des API indépendantes du langage pouvant être utilisées avec plusieurs langages de programmation. Les API doivent être implémentées avec le plus grand soin en exposant uniquement la fonctionnalité ou les données requises à l'extérieur, tout en maintenant les autres parties de l'application inaccessibles. L'utilisation des API est devenue très populaire sur Internet. Il est devenu très courant d'autoriser certaines fonctionnalités et données via une API vers l'extérieur sur le Web. Cette fonctionnalité peut être combinée pour offrir une fonctionnalité améliorée aux utilisateurs.
Qu'est-ce que le SDK?
Le SDK est un ensemble d’outils permettant de développer des applications logicielles ciblant une plate-forme spécifique. Les kits de développement incluent des outils, des bibliothèques, de la documentation et des exemples de code qui aideraient un programmeur à développer une application. La plupart des SDK peuvent être téléchargés à partir d'Internet et de nombreux SDK sont fournis gratuitement pour encourager les programmeurs à utiliser le langage de programmation du SDK. Certains SDK largement utilisés sont le SDK Java (JDK) qui inclut toutes les bibliothèques, les utilitaires de débogage, etc., ce qui faciliterait grandement l’écriture de programmes en Java. Les SDK facilitent la vie des développeurs de logiciels, car il n’est pas nécessaire de rechercher des composants / outils compatibles entre eux et qui sont tous intégrés dans un seul package facile à installer.
Quelle est la différence entre API et SDK?
L'API est une interface qui permet aux programmes logiciels d'interagir les uns avec les autres, tandis qu'un SDK est un ensemble d'outils pouvant être utilisés pour développer des applications logicielles ciblant une plate-forme spécifique. La version la plus simple d'un SDK pourrait être une API contenant certains fichiers nécessaires pour interagir avec un langage de programmation spécifique. Ainsi, une API peut être vue comme un simple SDK sans tout le support de débogage, etc.
la source
Un SDK ne peut être qu'une API (fichiers permettant une interface avec une autre application), mais inclut généralement un autre code d'aide au débogage et d'autres éléments pour votre IDE.
Je suis tout sur les acronymes.
la source
Tout ce qui précède est vrai, mais à propos du SDK, je voudrais ajouter qu’un kit de développement logiciel est (ou devrait être) un paquet vraiment complet avec (presque) tous les outils nécessaires au processus de développement, tandis que l’API n’est "qu’une" interface. interagir avec.
la source
Mes deux cents: Je crois que le terme API est souvent utilisé de manière incorrecte.
Une API est une interface de programmation d'application.
Bien que ce soit un nom maladroit, cela signifie que c'est une interface . Une application peut donc avoir une API pour permettre à d’autres applications de communiquer avec elle. De plus, un logiciel (par exemple une classe dans un système OO) peut offrir une API permettant aux autres modules du système de communiquer avec elle.
Cependant, le terme API est souvent utilisé comme synonyme de "bibliothèque". Je ne pense pas que ce soit une utilisation correcte du mot. Une partie de la bibliothèque est une API permettant au code de l'utiliser, mais la bibliothèque n'est pas une API.
Et un SDK est une sorte de bibliothèque, alors c’est là que la confusion peut être.
la source
Beaucoup d'autres réponses expliquent qu'un SDK est un outil , mais aucune d'entre elles ne sort directement et ne dit qu'une API est une spécification .
L’API pour compoonent X contient toutes les informations dont vous avez besoin pour écrire un autre composant susceptible d’interagir avec X. Un SDK pour le composant X peut contenir des routines de bibliothèque facilitant l’écriture de ce composant, mais ces bibliothèques ne sont pas compatibles. l'API: Ils sont simplement une incarnation de l'API.
la source
Je voudrais comparer cette façon.
Si vous êtes un développeur utilisant Microsoft Tools:
Si vous êtes un développeur utilisant Java:
J'imagine qu'un SDK devrait nécessairement s'appuyer sur une API correspondante - il n'y a pas de SDK sans API.
la source
Voici une analogie simple ... Les API sont comme des mots que vous pouvez utiliser et les kits de développement logiciel (SDK) sont comme des phrases qui ont été rassemblées pour vous.
la source
Au fur et à mesure que les applications sont développées et améliorées en les mettant en interface avec d'autres applications, il est nécessaire d'autoriser d'autres applications (logique) à s'interfacer avec la logique principale - ceci s'effectue via un ensemble défini d'API. Le SDK est utilisé pour créer / élaborer un code qui utilise des API pour interagir avec d'autres applications.
la source