TRAVAIL EN COURS !
Quelle: http://www.gruenderszene.de/allgemein/web-apis-ein-nicht-technischer-erklarungsversuch
Les API comme pierre angulaire du développement logiciel
Les API sont la pierre angulaire du développement de logiciels et, au plus tard depuis l'avènement du Web 2.0, elles sont également devenues familières à de nombreuses personnes non techniques. Mais c'est là que ça s'arrête souvent. Qu'est-ce qui se cache vraiment derrière ce terme ? Que sont exactement les API, et quelle est leur signification sur le Web ? Cet article est une tentative pratique d'explication et de résumé pour toutes les personnes non initiées, afin qu'elles puissent participer en toute confiance aux discussions et décisions futures.
Alors que la plupart des gens savent encore que l'abréviation "API" signifie "Application Programming Interface", les personnes non techniques sont souvent dans le noir. Ce fait, ainsi que l'inflation et l'utilisation incorrecte du terme au cours des dernières années, peuvent expliquer pourquoi il est devenu un véritable mot à la mode.
Les API Web ont été louées comme la panacée et l'arme secrète de tout site Web, et lors des mariages Web 2.0, elles ont même été considérées comme l'un des points du plan d'affaires susceptibles d'augmenter la valeur de l'entreprise de quelques pourcentages significatifs.
Maintenant que cette euphorie initiale s'est quelque peu calmée, nous allons maintenant dissiper les rumeurs et les légendes, mettre en évidence les opportunités et les risques réels et donner un aperçu du maquis des API.
Sens et objectif des APIs Web
Bien que nous apprenions à différencier les différents types d'API ci-dessous, ils ont tous une chose en commun : ils sont utilisés pour échanger et traiter des données et des contenus entre différents sites Web, programmes et fournisseurs, permettant ainsi à des tiers d'accéder à des pools de données et des groupes d'utilisateurs précédemment fermés. L'utilisation partagée de ce contenu peut ainsi créer des services totalement nouveaux (comme les clients de bureau), de la valeur ajoutée (comme les mash-ups) ou même des écosystèmes entiers - comme les magasins d'applications.
Principes de base
Comme le terme l'indique déjà, les API sont essentiellement des interfaces. Une interface permet la communication et l'interaction entre deux systèmes. Presque tout dans notre monde est constitué d'interfaces : La fiche et la prise servent d'interface pour transférer l'alimentation, le clavier et le doigt lors de l'utilisation d'un ordinateur pour transférer des pensées en caractères numériques.
Le monde de l'informatique regorge également d'interfaces et d'API - elles ont toujours été la pierre angulaire des systèmes d'exploitation et des programmes. Cependant, lorsque les gens parlent d'API dans les cercles Internet, ils désignent généralement ce qu'on appelle des API de services Web ou des API Web, c'est-à-dire des interfaces pour et depuis des sites Web et des applications Web. Bien que nous parlions principalement des API Web dans cet article, la plupart des faits généraux sont également communs aux API traditionnelles.
User Interface vs. Application Programming Interface
Dans les sites Web et les programmes, l'interface visuelle, appelée interface utilisateur (graphique) ou frontend, sert d'interface entre l'utilisateur et la logique logicielle sous-jacente, le backend. L'interface utilisateur reçoit les données de l'utilisateur, les transmet au logiciel pour traitement, puis renvoie le résultat à l'utilisateur. Le terme "interface utilisateur" n'est pas seulement largement utilisé et connu des techniciens - c'est le terme général pour la face et la surface d'un logiciel. Il est conçu en détail, mis en œuvre sur le web en utilisant des technologies telles que HTML, CSS ou Flash et optimisé pour l'ergonomie. Chaque site Web affiché dans un navigateur est donc initialement une interface utilisateur par laquelle les utilisateurs interagissent avec le logiciel proprement dit.
L'équivalent de l'interface utilisateur optimisée pour l'homme (lisible par l'homme) est maintenant l'interface de programmation d'application (lisible par la machine) adaptée au logiciel, qui permet fondamentalement un accès plus clairement abstrait et structuré aux fonctions du backend. En outre, les données peuvent être échangées, par exemple, sous une forme particulièrement facile à traiter et réduite.
Conception et normes API
Tout cela signifie également : tout comme nous concevons et réalisons le design d'un site web, une API doit également être conçue et réalisée. Et puisque l'interface doit être finalement implémentée et testée par un humain (un programmeur) en premier, nous devons idéalement inclure également une documentation compréhensible pour les humains (ou au moins les programmeurs).
Ces trois derniers aspects, en particulier, sont déjà définis et normalisés par une poignée de normes établies, appelées protocoles, parmi lesquelles les concepteurs d'API doivent choisir.
Pour standardiser la structure générale, il existe des protocoles tels que SOAP, XML-RPC ou REST, qui spécifient la structure - de gauche à droite - de stricte à moins stricte, selon votre choix. Ainsi, alors que SOAP est un standard très complexe, le REST, plus simple, offre plus de liberté de conception. Pour cette raison, SOAP est considéré comme un standard dans l'environnement de l'entreprise, alors que REST domine le marché des API Web publiques.
Enfin, pour le format des données, des normes telles que XML ou JSON sont généralement utilisées. Pour faire à nouveau la comparaison avec les sites Web : Ils représentent en fin de compte l'équivalent API du HTML.
Sur la différenciation des APIs Web
Une fois les bases clarifiées, il est utile de faire la distinction entre les différentes formes d'API Web pour mieux comprendre les aspects sous-jacents. Dans cet article, nous distinguons quatre types différents d'API Web :
- API internes
- APIs externes
- API de la plate-forme
- API d'authentification et d'autorisation
API internes
À proprement parler, presque tout dans le monde du développement logiciel est une API interne. Plus le code se différencie clairement des autres modules, plus il est probable qu'on l'appelle une véritable interface. Les API internes font partie du bon ton du développement professionnel de logiciels et servent à différencier les composants et les modules du logiciel les uns des autres d'une part et à les relier à nouveau d'autre part. Cela augmente la modularité et réduit ainsi la complexité globale.
Les architectures dites orientées services (SOA) vont particulièrement loin en décomposant le système global en autant de sous-systèmes (services) individuels et indépendants que possible, qui communiquent entre eux, par exemple, via des API de services Web.
On trouve de bons exemples de modularisation prononcée en dehors de l'industrie du logiciel, par exemple dans les secteurs de l'automobile et des PC, qui sont récompensés par un large éventail de possibilités de partage du travail, d'externalisation et de combinaison.
APIs externes
Lorsque nous parlons d'API en général, nous parlons habituellement d'API externes. De la même manière que certaines fonctions sont présentées à l'utilisateur via l'interface utilisateur, ces fonctions et d'autres peuvent également être exécutées via une API externe. Ceci est particulièrement intéressant pour le traitement du contenu et le développement de mash-ups. Un exemple typique est l'envoi de tweets via des applications de bureau comme TweetDeck, où l'API Twitter externe est utilisée.
Des exemples bien connus d'API Web externes en plus de Twitter sont également ceux de Flickr ou YouTube. Grâce à eux, le contenu des sites Web peut être lu, ajouté ou modifié automatiquement, ce qui se reflète aujourd'hui dans d'innombrables outils disponibles gratuitement.
API de plate-forme - par exemple Facebook, OpenSocial
Les API de plate-forme fournissent des interfaces pour l'intégration avec un autre site Web ou une autre plate-forme. Cela permet à des tiers de développer des applications ou des plug-ins et de les exécuter au sein de la plate-forme. Une API de plate-forme offre notamment des fonctions permettant d'intégrer l'interface utilisateur d'une application développée dans l'interface utilisateur de la plate-forme, mais aussi certaines fonctions d'accès aux données utilisateur (par exemple, le nom de l'utilisateur connecté ou celui de ses amis) ou d'autres fonctions centrales de la plate-forme.
Des exemples bien connus dans le monde du web sont l'API de Facebook ou le standard OpenSocial pour les API des plateformes. Ces sites Web sont également appelés " sites Web à plateforme ". Mais aussi les applications iPhone, Android, Windows, Linux ou Mac ne sont possibles qu'en ouvrant les API de la plate-forme.
API d'authentification et d'autorisation
Il existe également un type spécial d'API Web qui prend de plus en plus d'importance : Interfaces pour l'authentification (identification) et l'autorisation (octroi de droits d'accès) des utilisateurs.
Des exemples bien connus d'authentification sont Facebook Connect, Google FriendConnect ou le standard OpenID, qui vous évitent de constituer votre propre pool d'utilisateurs en permettant aux utilisateurs de se connecter via d'autres plateformes. C'est ce que l'on appelle aussi l'authentification unique (Single Sign-On).
Dans le domaine de l'autorisation, la norme OAuth s'est imposée, qui permet aux utilisateurs de déterminer si leurs données sont accessibles à des tiers via des API (par exemple, si une application externe peut publier des tweets en leur nom).
Résumé
Les API sont devenues une partie intégrante du monde du web d'aujourd'hui. L'ouverture croissante vers les fournisseurs tiers est l'un des développements les plus passionnants du Web, et va tisser des plates-formes et des contenus pour former un Web encore plus dense. Le développement et l'utilisation efficaces des API créent également son propre écosystème. Par exemple, des fournisseurs comme Apigee offrent des fonctions d'analyse et de contrôle étendues pour leurs propres API Web.