web-dev-qa-db-fra.com

Y a-t-il encore une différence entre une bibliothèque et une API?

Chaque fois que je demande aux gens de faire la différence entre une API et une bibliothèque, je reçois des opinions différentes. Certains donnent ce genre de définition, disant qu'une API est une spécification et qu'une bibliothèque est une implémentation ...

Certains vous diront ce type de définition, qu'une API est un ensemble de fonctions mappées, et qu'une bibliothèque est simplement la distribution sous forme compilée.

Tout cela me fait penser, dans un monde de code Web, de frameworks et d'open-source, y a-t-il vraiment une différence pratique? Une bibliothèque comme jQuery ou cURL pourrait-elle se croiser dans la définition d’une API? 

De plus, les frameworks entrent-ils dans cette catégorie? Y a-t-il une partie de Rails ou de Zend qui pourrait être plus "semblable à une API" ou "libraryesque"?

J'ai vraiment hâte d'avoir des pensées éclairantes :)

46
Trafalmadorian

Mon point de vue est que lorsque je parle d'une API, cela ne signifie que les parties exposées au programmeur. Si je parle de «bibliothèque», je parle également de tout ce qui fonctionne «sous le capot», même s’il fait partie de la bibliothèque.

54
teukkam

Un library contient des morceaux de code réutilisables (un logiciel).

Ces codes de bibliothèque réutilisables sont liés à votre programme via APIs (Interfaces de programmation d'application). En d’autres termes, l’API est l’interface à la bibliothèque par laquelle les codes réutilisables sont liés à un programme d’application.
En termes simples, on peut dire que une API est une interface entre deux logiciels facilitant l’interaction entre eux

enter image description here

Par exemple, dans les langages procéduraux tels que C, la bibliothèque math.c contient les implémentations de fonctions mathématiques telles que sqrt, exp, log etc. Elle contient la définition de toutes ces fonctions. 

Ces fonctions peuvent être référencées à l'aide de l'API math.h qui décrit et prescrit le comportement attendu _ .

16
haccks

L'API fait partie de la bibliothèque qui définit son interaction avec le code externe. Chaque bibliothèque a une API, l’API est la somme de tous les éléments publics/exportés. De nos jours, le sens de l'API est élargi. nous pourrions aussi appeler la façon dont le site Web/service interagit avec le code comme API. Vous pouvez également savoir que certains périphériques ont une API - l'ensemble des commandes que vous pouvez appeler.

Parfois, ces termes peuvent être mélangés. Par exemple, vous avez une application serveur (comme TFS par exemple). Il contient une API et cette API est implémentée en tant que bibliothèque. Mais cette bibliothèque est juste une couche intermédiaire entre vous et non celle qui exécute vos appels. Mais si la bibliothèque elle-même contient tout le code de l’action, nous ne pouvons pas dire que cette bibliothèque est API.

15
Andrey

Je pense que Library est un ensemble de toutes les classes et fonctions qui peuvent être utilisées à partir de notre code pour effectuer notre tâche facilement. Mais la bibliothèque peut contenir une partie de ses fonctions privées qu’elle ne souhaite pas exposer.

API est une partie de la bibliothèque qui est exposée à l'utilisateur. Ainsi, quelle que soit la documentation que nous ayons concernant une bibliothèque, nous l'appelons un API Documentation car elle ne contient que les classes et les fonctions auxquelles nous avons accès.

11
Shashwat

il faut d'abord définir une interface ...

Interface : est le moyen par lequel deux "choses" se parlent et échangent des informations. "choses" peut être un (1) humain ou (2) un code actif de toute sorte (par exemple, une bibliothèque, une application de bureau, un système d'exploitation, un service Web, etc.).

si un être humain veut parler à un programme, il a besoin de l'utilisateur graphique interface (GUI) ou de la ligne de commande interface (CLI). les deux sont des types d'interfaces que les humains (mais pas les programmes) aimeraient utiliser.

toutefois, si un code en cours d'exécution (de quelque type que ce soit) souhaite parler à un autre code en cours d'exécution (de tout type), il n'a pas besoin ou ne souhaite pas d'interface graphique ou de ligne de commande, il lui faut plutôt un programme de programmation d'application interface (API).

donc pour répondre à la question de l’affiche originale: la bibliothèque est un type de code en cours d’exécution et l’API est le moyen par lequel ce code en cours de communication communique avec d’autres codes en cours d’exécution.

3
EKanadily

En langage clair et concis 

Bibliothèque: Collection de toutes les classes et méthodes stockées pour la réutilisation

API: Partie de library classes et méthodes pouvant être utilisées par un utilisateur dans son code.

0
Devaarth

Selon mon point de vue, quelles que soient les fonctions accessibles à l'appelant, nous pouvons appeler comme api dans un fichier de bibliothèque, fichier de bibliothèque ayant certaines des fonctions qui sont privées, nous ne pouvons pas y accéder.

0
nirmal