Interface de programmation

Un article de Wikipédia, l'encyclopédie libre
Aller à la navigation Aller à la recherche
Les interfaces de programmation standardisées (API) sur différents systèmes d'exploitation garantissent la compatibilité du code source , c.-à-d. H Le code source peut être compilé avec succès pour les systèmes respectifs sans ajustements.

Une interface de programmation (également interface d' application , plus précisément interface de programmation d' applications ), souvent simplement appelée API (de l'anglais interface de programmation d'application , littéralement 'interface de programmation d'application '), est une partie de programme qui est rendue disponible par un système logiciel à d' autres programmes pour la connexion au système devient. Contrairement à une interface binaire (ABI), une interface de programmation définit uniquement la connexion du programme au code source-Niveau. La fourniture d'une telle interface comprend généralement la documentation détaillée des fonctions d'interface avec leurs paramètres sur papier ou sous forme de document électronique.

En plus d'accéder à des bases de données ou à du matériel tel qu'un disque dur ou une carte graphique , une interface de programmation peut également permettre ou simplifier la création de composants d' interface utilisateur graphique . Par exemple, l' interface de programmation d'applications Windows du système d'exploitation Windows permet à des entreprises externes de développer en premier lieu des logiciels pour ce système d'exploitation.

De nos jours, de nombreux services en ligne proposent également des interfaces de programmation ; ceux-ci sont alors appelés services web . Dans un sens plus large, l'interface de chaque bibliothèque est appelée interface de programmation. Ce type d' interface de programmation fonctionnelle doit être distingué des nombreuses autres interfaces utilisées en programmation - par exemple les paramètres déclarés et transmis lors de l'appel de sous- programmes .

Classification selon les classes de type

Les interfaces de programmation peuvent être divisées en classes de types suivantes :

Interfaces de programmation orientées fonction

Les interfaces de programmation orientées fonction ne reconnaissent que les fonctions avec ou sans valeur de retour comme moyen de communication. Le concept de poignées est presque toujours utilisé. Vous appelez une fonction et récupérez une poignée. Ce handle peut être utilisé pour appeler d'autres fonctions jusqu'à ce que le handle doive être refermé.

Interfaces de programmation orientées fichiers

Les interfaces de programmation orientées fichier sont adressées via les appels de système de fichiers normaux open, readet . Si des données doivent être envoyées à un objet, elles sont également écrites, si des données doivent être reçues, elles sont également lues. Sous UNIX, ce principe est répandu lors du contrôle des pilotes de périphériques. writeclosewriteread

Interfaces de programmation orientées objet

Les interfaces de programmation orientées objet utilisent des pointeurs d'interface et sont donc nettement plus flexibles que les interfaces de programmation orientées fonction. Une bibliothèque de types est souvent fournie .

Interfaces de programmation orientées protocole

Les interfaces de programmation orientées protocole sont indépendantes du système d'exploitation et du matériel . Cependant, le protocole doit toujours être ré-implémenté. Afin de minimiser cet effort, l'interface orientée protocole est encapsulée par une interface orientée fonction ou interface. Une distinction peut également être faite ici entre les protocoles généraux (par exemple SOAP ) et spécifiques à l'application (par exemple SMTP ).

Classification selon les stades de développement

Dans le cas des interfaces de programmation pour logiciels d'application , une distinction est également faite selon le niveau de développement . Le point de départ de cette distinction est le constat que les opérations de l'interface de programmation ne se développent souvent qu'avec le temps. Il est très important que les opérations disponibles dans les versions antérieures de l'interface de programmation soient toujours disponibles dans toutes les versions ultérieures et aient également la même signification . Avec une interface stable, l'application n'a plus besoin d'être modifiée. Une distinction est faite entre les API évolutives et stables . En tant que refactorfait référence au développement ultérieur d'une interface de programmation qui n'implique aucune modification des programmes utilisateur. [1]

sens

L'existence d'une interface de programmation d'application (API) bien documentée peut être un avantage concurrentiel significatif pour un produit logiciel ou un produit matériel qui inclut le logiciel - en permettant à d'autres éditeurs de logiciels ou programmeurs indépendants de créer des logiciels supplémentaires pour ce système. Avec l'offre de programmes supplémentaires de fournisseurs tiers, l'attractivité du système d'origine, tel qu'un système d'exploitation informatique, une console de jeux ou un smartphone , augmente à son tour.-Famille. La politique commerciale à l'égard de cette interface peut donc décider du succès commercial du logiciel et éventuellement aussi du matériel associé. Par exemple, certains éditeurs de logiciels facturent des sommes importantes pour la documentation nécessaire associée, ce qui représente une barrière à l' entrée pour les programmeurs intéressés. Il peut également être prévu que l'API ne soit accessible qu'avec un système de développement logiciel coûteux .

Un autre facteur de succès peut être la stabilité à long terme de l'API mentionnée ci-dessus, car s'il y a des changements fréquents, le programmeur d'une application supplémentaire est également obligé de changer son logiciel à chaque fois pour qu'il continue à fonctionner. Cela peut impliquer une main-d'œuvre importante et donc des coûts importants, rendant le développement commercialement moins attractif.

exemples

L'environnement de développement Xcode , qui donne accès à l' API du système d'exploitation pour smartphone Apple iOS , est disponible en téléchargement gratuit, mais uniquement pour les ordinateurs Apple Mac . En outre, les développeurs doivent signer un accord de non- divulgation et payer une cotisation, ce qui est considéré comme un obstacle - d'autant plus qu'Apple est confronté à une forte concurrence sur le marché des smartphones et des applications mobiles en raison du grand succès de l' exploitation Android . système . [2]

La norme POSIX définie par l' IEEE existe pour la famille des systèmes d'exploitation Unix . Les prix de la documentation de cette API sont très élevés et la publication est interdite par la loi sur le droit d'auteur. Récemment, par conséquent, il y a eu une tendance vers la spécification UNIX unique de l' Open Group . Ces normes sont ouvertes, disponibles gratuitement sur Internet et n'importe qui peut soumettre des suggestions.

Voir également

Littérature

les détails

  1. Danny Dig, R. Johnson : Comment évoluent les API ? Une histoire de refactoring . Dans Journal of Software Maintenance and Evolution . Recherche et pratique . Wiley, Chichester, New York 2006. p. 1–26.
  2. Toutes vos applications appartiennent à Apple : le contrat de licence du programme pour développeurs iPhone . Fondation Frontière électronique . 9 mars 2010. Consulté le 17 avril 2010.