web-dev-qa-db-fra.com

différence entre API et framework

quelle est la différence entre ces deux termes, merci d’avance pour toute bonne simplification et bon exemple.

25
rookie

Une infrastructure est un groupe de classes, d'interfaces et d'autres codes précompilés sur lesquels ou à l'aide desquels des applications peuvent être construites. 

L'API est la face publique d'un framework. Un framework bien conçu expose uniquement les classes, interfaces, etc. nécessaires à son utilisation. Le code qui prend en charge le fonctionnement du cadre, mais qui n'est pas nécessaire pour les utilisateurs du cadre, reste interne aux assemblys/dll du cadre. Cela permet de garder une petite taille pour le public et d'encourager un "gouffre de succès" ou la qualité d'un cadre qui facilite la tâche.

(Je fournis un exemple tiré du monde .NET) La classe SqlConnection est utilisée pour se connecter à une instance de serveur SQL. Son API publique est assez simple:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Do work here; connection closed on following line.
}

Cependant, cette classe dépend de 200 méthodes environ dans le cadre System.Data (dans ce cas, un Assembly ), dont 3/4 sont internes et ne font pas partie de l’API publique de System.Data . Du fait que l'API de la structure reste simple, il devient facile d'utiliser SqlConnection correctement. Si l'utilisateur devait traiter SqlConnectionFactory , SqlDebugContext , DbConnectionPoolGroup ou l'une des autres classes internes requises par la classe SqlConnection, il deviendrait de plus en plus exponentiellement plus difficile d'utiliser SqlConnection correctement. Comme l'API n'expose qu'un faible pourcentage du framework, il est plus facile de créer et d'utiliser une connexion.

49
Will

Une API est une interface avec un (ensemble de) composant (s) encapsulant une fonctionnalité. Par exemple, l'API GoogleMaps, les API DirectX ou OpenGL.

Un framework est plutôt un ensemble d'outils, de composants destinés à aider le développeur à développer son projet dans un Frame donné. Le framework définit généralement des standards de codage, fournit des composants utiles, ... Par exemple, Symfony/Cake sont des frameworks d'applications Web [PHP]. JUnit est un framework pour les tests unitaires en Java, ...

Les frameworks peuvent souvent associer/fournir une interface unifiée à certaines API.

Certaines API peuvent être construites en interne à l'aide d'un framework.

6
Vincent Mimoun-Prat
  1. API - interface de programmation d'application -> contrat auquel vous devez vous conformer lorsque vous utilisez une API de bibliothèque
  2. bibliothèque - ensemble de classes/modules qui résolvent un problème spécifique -> possède une API
  3. framework - un "plus grand" ensemble de bibliothèques avec un ensemble de règles sur la façon de les utiliser

Puisque chaque bibliothèque a une API, inutile de donner des exemples.

Une bibliothèque Java populaire pour time est Joda time .

Un framework Java populaire est le framework Spring .

Vous devez respecter de nombreuses règles pour bien utiliser Spring. Vous n'avez pas à obéir à autant de règles pour utiliser le temps Joda.

3
darioo

Une API est quelque chose code a, pas quelque chose il est. Un framework a une API, mais ce n'est pas en soi une API.

1
kindall

Les API sont pré-intégrées à partir du SDK (ou à partir desquelles vous pouvez l'inclure). Les cadres sont des ensembles chargeables dans lesquels les fonctions exposées de ces ensembles peuvent être utilisées. Vous pouvez acquérir des fonctions d'exposition de ces frameworks en utilisant un pointeur sur des fonctions.

Exemple: 

API:

-stringWithString:

fonction du cadre:

-myExposedMethod:
0
Neilvert Noval
  1. API Java signifie simplement ... Interface de programmation d'application dans laquelle toutes les fonctionnalités décrivent un produit ou un logiciel. 

  2. Java Framework signifie projet ou code semi-achevé. Il fournit une architecture pour faire un projet. Framework possède ses propres classes et méthodes, etc.

0
Ashish Gojiya

Une API est simplement une bibliothèque construite avec un langage particulier que les développeurs peuvent utiliser pour créer des applications. Les frameworks sont un ensemble de bibliothèques, tout comme les API, mais les syntaxes peuvent différer du langage d'origine. Le développeur peut donc écrire une syntaxe différente de PHP, par exemple, lorsqu'il utilise Symphony. 

0
Ghassen BHS

Le cadre est utilisé pour concevoir une application, par exemple MVC, MEF. Comme un modèle sur lequel vous construisez, presque une base pour un certain ensemble de fonctionnalités que vous pourriez souhaiter dans votre application.

L'API sert à l'interaction entre les applications. Votre application utiliserait l'API de Facebook pour interagir avec Facebook.

J'espère que c'est un peu plus clair.

0
Pieter

La différence principale ou fondamentale entre le framework et l'API est que ce framework permet au développeur de s'intégrer au cycle de vie des objets via le mécanisme des méthodes de rappel du cycle de vie alors que l'API ne le fait pas, l'API est uniquement destiné à exécuter une fonctionnalité uniquement.

0
Satyam

Une autre façon de le visualiser est la suivante: (vrai de tout langage de programmation)} _

Any (!) "Logiciel destiné à être utilisé par un autre logiciel" par définition obligatoire possède une "interface de programme d'application (API)", qui représente "boutons, commutateurs et cadrans" que l'autre logiciel est censé utiliser (et autorisé). Tous les détails de la mise en œuvre interne ne sont pas visibles et ne peuvent pas être atteints.

Les "cadres" sont des outils conçus pour faciliter la rédaction d'un type d'application commun, tel qu'une page Web. Le framework implémente "tout ce que (chaque) cette application va devoir être capable de faire", et le fait d'une seule manière, bien testée ", précisément pour que vous ( l'auteur de l'application) n'a pas à le faire. " Au lieu d'écrire de manière redondante «la même vieille chose encore une fois et de vous inquiéter de l'avoir fait correctement», vous exploitez simplement ce que le cadre a déjà fait pour vous.

Après tout...

Actum Ne Agas: _ ​​Ne fais pas une chose déjà faite.

0
Mike Robinson