Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Interface de programmation

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirAPI.

Démonstration d'uneroutine appelant unebase de données dans une interface de programmation.

Eninformatique, uneinterface de programmation d’application[1] ouinterface de programmation applicative[2],[3], souvent désignée par le termeAPI pour « ApplicationProgrammingInterface » enanglais, est un ensemble normalisé declasses, deméthodes, defonctions et deconstantes qui sert defaçade par laquelle unlogiciel offre des services à d'autres logiciels. Elle est offerte par unebibliothèque logicielle ou unservice web, le plus souvent accompagnée d'une description qui spécifie comment des programmes « consommateurs » peuvent se servir des fonctionnalités du programme « fournisseur ».

On parle d'API à partir du moment où une entité informatique cherche à agir avec ou sur un système tiers et que cette interaction se fait de manière normalisée en respectant les contraintes d'accès définies par le système tiers. On dit alors que le système tiers « expose une API ».

À ce titre, des interactions aussi diverses que la signature d'une fonction, uneURL ou unRPC par exemple sont parfois considérés comme des API (ou micro-API) à part entière.

Dans l'industrie contemporaine du logiciel, les applications informatiques se servent de nombreuses interfaces de programmation, car laprogrammation réutilise des briques de fonctionnalités fournies par des logiciels tiers. Cette construction par assemblage nécessite pour le programmeur de connaître la manière d’interagir avec les autres logiciels qui dépend de leur interface de programmation. Le programmeur n'a pas besoin de connaître les détails de la logique interne du logiciel tiers, et celle-ci n'est pas nécessairement documentée par le fournisseur. Seule l'API est réellement nécessaire pour utiliser le système tiers en question.

Des logiciels tels que lessystèmes d'exploitation, lessystèmes de gestion de base de données, leslangages de programmation ou lesserveurs d'applications comportent une ou plusieurs interfaces de programmation.

Description

[modifier |modifier le code]

Une interface de programmation est une façade clairement délimitée par laquelle un logiciel offre des services à d'autres logiciels[4] afin que des données ou des fonctionnalités soient échangées[5]. L'objectif est de fournir une porte d'accès à une fonctionnalité en cachant les détails de la mise en œuvre[4]. Une interface de programmation peut comporter desclasses, desméthodes ou desfonctions, destypes de données et desconstantes[4]. Le plus souvent, une interface de programmation est mise en œuvre par unebibliothèque logicielle qui fournit une solution à un problème informatique en faisant abstraction de son fonctionnement[4].

La description de l'interface de programmation spécifie comment des clients peuvent interagir avec un logiciel en mettant l'accent sur les fonctionnalités offertes par le logiciel et en cachant les détails de son fonctionnement[4]. Une interface de programmation peut être utilisée dans de nombreux programmes et sert alors de jeu de construction offrant des pièces de fonctionnalités qui peuvent être incorporées dans des applications[4]. Les programmeurs créent des interfaces de programmation pour les autres programmeurs, pour l'industrie informatique, mais aussi parfois pour leurs propres besoins[4].

Utilisation

[modifier |modifier le code]

La création et l'utilisation des interfaces de programmation sont un sujet incontournable de la programmation contemporaine[4]. Uneapplication se sert généralement de nombreuses interfaces de programmation, mises en œuvre par des bibliothèques logicielles, qui peuvent elles-mêmes se servir d'autres interfaces de programmation[4].

Enarchitecture orientée services les applications peuvent dépendre de fonctionnalités tierces offertes par des logiciels via des interfaces de programmation mises en œuvre par desservices web[4].

Les interfaces de programmation permettent de gagner du temps par la collaboration et la spécialisation des équipes de développement de logiciels. L'apparition de standards tels que leSQL et les premiersSGBD en 1979 sont un bon exemple de système utilisant des API, et avec la complexité croissante des bases de données, plus personne n'écrit unSGBD maison pour une application informatique. Les programmeurs réutilisent les SGBD existant dans le commerce, fournis par des entreprises spécialisées dans ce type de produit, et se concentrent sur la logique propre à leur application. De nombreux produits d'infrastructure sont ainsi disponibles sous forme deframework ou debibliothèque[6].

Une interface de programmation permet par exemple à un programme d'accéder aux services offerts par lesystème d'exploitation qui héberge le programme. L'interfaceSockets est un exemple classique d'interface de programmation qui permet à un programme d'exploiter les possibilités de lacouche réseau du système d'exploitation[7].

Une des interfaces les plus connues est laWindows API. C'est une collection de fonctions, de types de données et de constantes, enlangage de programmation C (Windows ayant été essentiellement écrit en C, notamment le noyau, et partiellement en C++[8]), qui permet à des programmeurs de créer des applications pour les systèmes d'exploitation Windows. Elle offre la possibilité de manipuler des fichiers, des processus, de communiquer par les réseaux et de manipuler desinterfaces graphiques[4].

Marché

[modifier |modifier le code]

Dans l'industrie contemporaine du logiciel, les applications informatiques se servent de nombreux logiciels tiers tels qu'unsystème d'exploitation, desbibliothèques standards ou desserveurs d'application. Chacun de ces produits a sa propre interface de programmation. Ainsi chaque programmeur impliqué dans le développement de tels produits est impliqué, consciemment ou non, dans lebusiness des interfaces de programmation[6]. Du point de vue dubusiness, une interface de programmation est un contrat par lequel un fournisseur de fonctionnalité décrit son offre, les fonctionnalités qu'il offre et les éventuelles limitations[9].

La construction par assemblage de logiciels nécessite pour le constructeur de savoir comment les pièces interagissent entre elles. Celui qui réalise l'assemblage n'a pas besoin de connaître tous les détails des mécanismes internes d'une pièce, du moment qu'il connaît son interface de programmation[6]. L'interface de programmation est le minimum qu'un programmeur a besoin de connaître pour pouvoir se servir d'une pièce de logiciel tierce. Pour une fonction, c'est le nom de celle-ci, les paramètres et le type du résultat, ainsi que les effets observables de la fonction[10].

Une interface de programmation est distribuée sur le marché comme un produit logiciel ordinaire, régulièrement amélioré. La mise en œuvre des fonctionnalités utilisables à travers l'interface de programmation peut changer régulièrement, tout en maintenant la façade conforme au contrat[9].

Exemples d'API

[modifier |modifier le code]

Exemples en fonction du domaine applicatif

[modifier |modifier le code]

Fonctions des interfaces de programmation en Java

[modifier |modifier le code]

Les interfaces de programmation peuvent avoir plusieurs fonctions. Par exemple, dansJava EE, on trouve des fonctions telles que des API de communication synchrone ou asynchrone, des API de connexions (annuaires,bases de données,progiciels de gestion intégrés), des API de gestion de transactions, des API de gestion decourriels, des API desérialisation parXML, des API d'analyseXML ou des API de gestion des registresXML (par exempleebXML).

Des API peuvent servir à simplifier l'accès à d'autres API, par exemple l'APIJAXP qui permet facilement l'accès à différentes implémentations des API SAX et DOM (XML4J,Apache Xerces).

Données véhiculées

[modifier |modifier le code]

Les interfaces de programmation peuvent véhiculer desmétadonnées.

API management 

[modifier |modifier le code]

L'API Management est un outil de gestion des API, une solution informatique qui a pour vocation d'aider lesorganisations, lesentreprises à exploiter et à publier au mieux les API sans mettre en péril lesystème d’information[12]. C'est un moyen d’interconnecter de façon sécurisée des services internes et externes. En outre, l'API Management permet aussi d’avoir une certaine visibilité sur les demandes d’accès à ses APIs. Celui-ci sécurise les API exposées, facilite la gestion de leur cycle de vie, aide à piloter la consommation des API, outille le reporting pour le suivi des contrats[13].L'API Management implique donc la création de ressources d'assistance à l'utilisateur, qui définissent et documentent les API[14][pas clair].

Notes et références

[modifier |modifier le code]
  1. « interface de programmation »,Grand Dictionnaire terminologique,Office québécois de la langue française(consulté le).
  2. « Interface de programmation : API ou Application Programming Interface », surjournaldunet.fr,(consulté le).
  3. François Mouzard,Lexique de l'informatique : Bulletin de terminologieno 233, Ministre des Travaux publics et Services gouvernementaux - Bureau de la traduction,, 553 p.(ISBN 978-0-660-60165-6 et0-660-60165-6,lire en ligne).
  4. abcdefghij etk(en) Martin Reddy,API Design for C++, Elsevier - 2011,(ISBN 9780123850041).
  5. « Interface de programmation d’application (API) | CNIL », surwww.cnil.fr(consulté le)
  6. ab etc(en) Jaroslav Tulach,Practical API Design: Confessions of a Java Framework Architect, Apress - 2008,(ISBN 9781430209744).
  7. (en) Joe Casad,Sams Teach Yourself Tcp/Ip in 24 Hours, Sams Publishing - 2004,(ISBN 9780672325656).
  8. « One Dev Question with Raymond Chen - What Programming Language is Windows Written In? »(consulté le)
  9. a etb(en) Daniel Jacobson - Dan Woods - Greg Brail,APIs: A Strategy Guide, O'Reilly Media Inc. - 2011,(ISBN 9781449308926).
  10. (en) David A. Watt,Programming Language Design Concepts, John Wiley & Sons - 2004,(ISBN 9780470020470).
  11. « Gestion des API : établissement de passerelles d’API | Microsoft Azure », surazure.microsoft.com(consulté le)
  12. « Présentation de Gestion des API », surmicrosoft.com,(consulté le)
  13. Frédérick Miszewski, « Pourquoi l’API Management n’est pas un sujet IT », surnexworld.fr(consulté le)
  14. Margaret Rouse, « Gestion des API », surlemagit.fr(consulté le)

Voir aussi

[modifier |modifier le code]

Sur les autres projets Wikimedia :

Articles connexes

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]
v ·m
Bibliothèque logicielle
Vocabulaire
Fonctions
Objet
ÉvénementielInversion de contrôle
Code source
Structures de données
Déclarations
Structures de contrôle
Fonctions usuelles
Outil de développement
Folklore
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Interface_de_programmation&oldid=228534522 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp