Vous êtes sur la page 1sur 6

Interface de programmation

1
En informatique, une interface de programmation d’application ou interface de programmation
2, 3, 4
applicative (souvent désignée par le terme API pour Application Programming Interface) est un
ensemble normalisé de classes, de méthodes, de fonctions et de constantes qui sert de façade par laquelle
un logiciel offre des services à d'autres logiciels. Elle est offerte par une bibliothèque logicielle ou un
service 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.

De manière plus générale, 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 que le système tiers « expose une API. » À ce
titre, des choses aussi diverses que la signature d'une fonction, une URL, un RPC… 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 la programmation se fait en réutilisant 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 les systèmes d'exploitation, les systèmes de gestion de base de données, les
langages de programmation, ou les serveurs d'applications comportent une ou plusieurs interface(s) de
programmation.
Sommaire
Description
Utilisation
Marché
Exemples d'API
Exemples en fonction du domaine applicatif
Fonctions des interfaces de programmation en Java
Données véhiculées
API management
Notes et références
Voir aussi
Articles connexes
Liens externes

Description
Une interface de programmation est une façade clairement délimitée par laquelle un logiciel offre des
5
services à d'autres logiciels . L'objectif est de fournir une porte d'accès à une fonctionnalité en cachant
5
les détails de la mise en œuvre . Une interface de programmation peut comporter des classes, des
5
méthodes ou des fonctions, des types de données et des constantes . Le plus souvent, une interface de
programmation est mise en œuvre par une bibliothèque logicielle qui fournit une solution à un problème
5
informatique en faisant abstraction de son fonctionnement .

La description de l'interface de programmation spécifie comment des clients peuvent interagir avec un
5
logiciel en mettant l'accent sur les fonctionnalités offertes par le logiciel et en cachant les détails de son
5
fonctionnement . 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
5
des applications . Les programmeurs créent des interfaces de programmation pour les autres
5
programmeurs, pour l'industrie informatique, mais aussi parfois pour leurs propres besoins .

Utilisation
La création et l'utilisation des interfaces de programmation est un sujet incontournable de la
5
programmation contemporaine . Une application 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
5
d'autres interfaces de programmation .

En architecture orientée services les applications peuvent dépendre de fonctionnalités tierces offertes par
5
des logiciels via des interfaces de programmation mises en œuvre par des services web .

Les interfaces de programmation permettent de gagner du temps par la collaboration et la spécialisation


des équipes de développement de logiciel. Par exemple aujourd'hui [Quand ?] plus personne n'écrit un
SGBD 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
6
forme de framework ou de bibliothèque .

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

Une des interfaces les plus connues est la Windows API. C'est une collection de fonctions, de types de
données et de constantes, en langage de programmation C (alors que windows a été essentiellement écrit
en Pascal...), 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, communiquer par les réseaux
5
et manipuler des interfaces graphiques .

Marché
Dans l'industrie contemporaine du logiciel, les applications informatiques se servent de nombreux
logiciels tiers, tels qu'un système d'exploitation, des bibliothèques standard, ou des serveurs 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 le business des
6
interfaces de programmation . Du point de vue business 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
8
éventuelles limitations .

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 connaitre tous les détails des
6
mécanismes internes d'une pièce, du moment qu'il connait son interface de programmation . L'interface
de programmation est le minimum qu'un programmeur a besoin de connaitre 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,
9
ainsi que les effets observables de la fonction .

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
8
programmation peut changer régulièrement, tout en maintenant la façade conforme au contrat .

Exemples d'API
10
Azure API (dont API App, API Management )
Graph API de Facebook
Google Maps API
11
API de Salesforce

Exemples en fonction du domaine applicatif


graphisme 3D : OpenGL ou plus récemment Vulkan (Khronos Group), Direct3D (de la
série DirectX de Microsoft), Mantle (AMD)
manipulation de documents XML : SAX (Simple API for XML) et DOM (Document Object
Model)
accès à des bases de données : ODBC, JDBC
cartographie et SIG

Fonctions des interfaces de programmation en Java


Les interfaces de programmation peuvent avoir plusieurs fonctions. Par exemple, dans Java EE, on
trouve les fonctions suivantes :

API de communication synchrone / asynchrone


API de connexions (annuaires, bases de données, progiciels de gestion intégrés)
API de gestion des transactions
API de gestion des courriels
API de sérialisation par XML
API d'analyse XML
API de gestion des registres XML (par exemple ebXML)
Des API peuvent servir à simplifier l'accès à d'autres API

API JAXP permet facilement l'accès à différentes implémentations des API SAX et DOM
(XML4J, Apache Xerces (en)).

Données véhiculées
Les interfaces de programmation peuvent véhiculer des métadonnées.

Dans les interfaces prévues par les progiciels de gestion intégrée. Exemples : Oracle 9i
Metadata API et Relational metadata API de SAP.
Dans les langages de programmation. Exemple du langage Java : API d'accès et de
traitement des données enregistrées dans une source de données.
Dans les systèmes décisionnels. Exemple : Métadonnées dans les API de SAS.
Dans les bases de données relationnelles. Exemple : DB2 Cube.
Dans les applications d'ingénierie des connaissances. Exemple Loading metadata to
Livelink using Bulk Loader API's.

API management
L'API Management est une discipline, un outil de gestion des API, une solution informatique qui a pour
vocation d'aider les organisations, les entreprises à exploiter et à publier au mieux les API sans mettre en
12
péril le système d’information . 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,
13
aide à piloter la consommation des API, outille le reporting pour le suivi des contrats . L'API
Management implique donc la création de ressources d'assistance à l'utilisateur, qui définissent et
14
documentent les API .

Notes et références
1. « interface de programmation » (http://www.gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=83
94269), Le Grand Dictionnaire terminologique, Office québécois de la langue française
(consulté le 27 mai 2019).
2. « Interface de programmation : API ou Application Programming Interface » (https://www.jou
rnaldunet.fr/web-tech/dictionnaire-du-webmastering/1203559-api-application-programming-i
nterface-definition-traduction/), sur journaldunet.fr, 20 janvier 2019 (consulté le
27 juin 2019).
3. Jean-Noël Anderruthy, Techniques de veille et de e-réputation, Éditions ENI, juin 2009,
355 p. (lire en ligne (https://books.google.com/books?id=UFC9bNYRKxUC&pg=PT31&dq
=%22interface+de+programmation+applicative%22&hl=fr&sa=X)), p. 24 :

« une API (Application Programming Interface ou "interface de


programmation applicative") […] »

4. François Mouzard, Lexique de l'informatique - Bulletin de terminologie no 233, Ministre des


Travaux publics et Services gouvernementaux - Bureau de la traduction, 2011
(ISBN 0-660-60165-6, lire en ligne (http://publications.gc.ca/collections/collection_2011/tpsg
c-pwgsc/S52-2-233-1997.pdf)).
5. (en)Martin Reddy, API Design for C++, Elsevier - 2011, (ISBN 9780123850041).
6. (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. (en)Daniel Jacobson - Dan Woods - Greg Brail, APIs: A Strategy Guide, O'Reilly Media Inc.
- 2011, (ISBN 9781449308926).
9. (en)David A. Watt, Programming Language Design Concepts, John Wiley & Sons - 2004,
(ISBN 9780470020470).
10. « Gestion des API : établissement de passerelles d’API | Microsoft Azure » (https://azure.mi
crosoft.com/fr-fr/services/api-management/), sur azure.microsoft.com (consulté le
11 janvier 2018)
11. https://developer.salesforce.com/page/Salesforce_APIs
12. « Présentation de Gestion des API » (https://docs.microsoft.com/fr-fr/azure/api-managemen
t/api-management-key-concepts), sur microsoft.com, 23 janvier 2017 (consulté le
31 mai 2017)
13. Frédérick Miszewski, « Pourquoi l’API Management n’est pas un sujet IT » (http://www.nexw
orld.fr/api-management-directions-generales/), sur nexworld.fr (consulté le 31 mai 2017)
14. Margaret Rouse, « Gestion des API » (http://www.lemagit.fr/definition/Gestion-des-API), sur
lemagit.fr (consulté le 31 mai 2017)

Voir aussi

Articles connexes Sur les autres projets Wikimedia :

API Management interface de programmation,


Java EE sur le Wiktionnaire
Interface (informatique) API, sur le Wiktionnaire
Migration d'interfaces de programmation
Liens externes
(en) SAX, Simple API for XML (http://www.saxproject.org/)
(en) What is an API? Your guide to the Internet Business (R)evolution (http://www.3scale.
net/2011/03/what-is-an-api-your-guide-to-the-internet-business-revolution/)

Ce document provient de « https://fr.wikipedia.org/w/index.php?


title=Interface_de_programmation&oldid=168348112 ».

La dernière modification de cette page a été faite le 12 mars 2020 à 11:03.

Droit d'auteur : les textes sont disponibles sous licence Creative Commons attribution, partage dans les mêmes
conditions ; d’autres conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails, ainsi que
les crédits graphiques. En cas de réutilisation des textes de cette page, voyez comment citer les auteurs et
mentionner la licence.
Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance régie par le
paragraphe 501(c)(3) du code fiscal des États-Unis.

Vous aimerez peut-être aussi