Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

API (informatique)

API (informatique) : interface entre un logiciel qui demande un service et un autre, local ou distant, qui offre le service.

cr  01.04.2012      r+  21.08.2020      r-  20.04.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

API - API API - 01 API top

API = Application Programming Interface (Interface de Programmation Applicative)

Une API est une interface entre un logiciel qui demande un service et un autre logiciel qui offre le service. Le logiciel qui offre le service peut être local (bibliothèque de services) ou distant (service Web). Une API sert à exposer à un demandé (un logiciel/service) les capacités du demandeur (appareil, système d'exploitation, etc.) afin que le demandeur puisse exploiter une ou des capacités et caractéristiques du demandé sans entrer dans les arcanes du demandé.

Les APIs en Web Service

L'aspect Web (service Web) participe du concept général du DRY ("Don't Repeat Yourself" - « Ne vous répétez pas »). Au lieu d'avoir une fonction répétée des milliards de fois sur des milliards d'ordinateurs ou objets connectés, avec tous les problèmes de mises à jour et d'homogénéité, il n'y a plus qu'un seul exemplaire de la fonction, sur un seul serveur, et les milliards d'ordinateurs utilisent juste une API pour solliciter la fonction (sur le Web) qui retourne sa réponse (qui rend un service). Mais ces ordinateurs distants, pompeusement appelés d'un nom « vendeur » et « ronflant », les « clouds », ne sont que des ordinateurs :

  • appartenant à on ne sait qui,

  • se trouvant on ne sait où (dont les risques juridiques),

  • que l'on ne maîtrise pas.

Chaque appel à une API déportée fait l'objet d'un tracking (des raisons statistiques sont avancées, mais les autres raisons sont passées sous silence, dont les injonctions faites aux opérateurs du Web par les officines obscures qui ont conduit à, par exemple, Prism et Cie).

Au lieu d'avoir, dans un seul ordinateur, des fonctions standard répétées partout, dans chaque programme qui en a besoin, on les développe une bonne fois pour toutes et on les met à disposition des programmes qui appellent ces fonctions, par une API, en lui passant les arguments sur lesquels la fonction doit travailler pour rendre un résultat. Tous les Frameworks sont de cette nature.

Ce n'est pas nouveau. Dans un développement de programmation « propre » (antonyme de « brouillon », mal écrit, indéchiffrable, impossible à maintenir sur les 10, 20 ou 50 ans de durée de vie d'un programme, bordélique, etc. ...), les « routines » sont développées séparément et structurées. Cela est plus facile à maintenir, documenter, utiliser et réutiliser, etc.

Souvenirs de l'auteur :

Au début des années 70, j'avais déjà mis très logiquement cela en place pour mes besoins personnels, car, dans des développements de plusieurs millions de lignes de code, apparaît très vite un besoin de rationalisation de l'écriture des programmes (pas de monolithisme, mais des assemblages de briques logicielles). Si ma mémoire est bonne, j'appelais ces appels aux services externes que j'avais développés, des « call blocks » (ce que l'on appellerait, aujourd'hui, des APIs). Le « call block » était, outre la désignation du programme externe appelé, un buffer (une zone mémoire) dont l'organisation (la structure) était dépendante du programme externe appelé (type de données, taille de chacune des données, etc. ...). Les arguments étaient passés et, si nécessaire, des résultats étaient récupérés au retour dans le même « call block ». Il est probable que toutes les équipes de développement de grands projets, au monde, faisaient la même chose à la même époque, sous je ne sais quels noms.

Un programmeur qui développe une application fenêtrée, sous Windows, ne développe jamais la programmation de l'interface graphique utilisateur (le GUI), mais passe, uniquement, des arguments aux fonctions graphiques de Windows. Ce sont des APIs. Windows est, entre autres choses, une vaste collection d'APIs grâce auxquelles un programmeur peut communiquer avec des couches techniques de Windows sans avoir à se préoccuper de leur écriture.

L'installation de VTZilla comporte l'usage d'une API pour solliciter le service VirusTotal. Mais ce « service », vous le « payez gratuitement » par le fait que le propriétaire du service VirusTotal, la société Google, surveille et note dans ses infinies mémoires (depuis le premier jour où vous vous êtes connecté sur le Web), tout ce que vous manipulez (les programmes, images, fichiers, sites Internet, URLs, etc.), à chaque instant, afin de savoir à quoi vous vous intéressez). Si quelqu'un regardait par-dessus votre épaule, 24/24, 365/365, ce que vous faites sur votre smartphone, tablette, ordinateur, réfrigérateur, voiture, GPS, etc. vous lui ficheriez votre poing dans la figure ! Et bien, sur le Web, ils sont des dizaines en même temps à vous suivre/surveiller/espionner, 24/24, 365/365, et tout le monde s'en fiche ! C'est là le problème des APIs comme de tout ce qui fait une requête HTTP tant que ces requêtes resteront des chevaux de Troie.


Les « requêtes HTTP » sont le « cheval de Troie »
de la « charge utile » que sont les « entêtes HTTP »

Les « requêtes HTTP » sont le « cheval de Troie » de la « charge utile » que sont les « entêtes HTTP »
Tout est bon pour provoquer des requêtes HTTP afin de permettre cet espionnage pudiquement appelé tracking, le truc qu'il faut bloquer/interdire.


Lorsque vous regardez la page sur la commune Saint-Laurent-du-Var, le dessin de la carte (Google Maps) et votre déplacement sur cette carte sont appelés par une simple API écrite dans la page Web visitée, tout le reste est un service Web distant. Encore un service de Google que « vous payez gratuitement ».


Rien n'est gratuit sur le Web :

  1. Le gratuit, ça n'a pas de prix, mais ça a un coût !

  2. Lorsque le produit est gratuit, c'est que vous êtes le produit.

  3. Lorsque le service est gratuit, c'est que vous êtes le service.


La multiplication du déport des fonctions locales vers des « services Web » simplifie certaines actions (maintenance, mise à jour homogène pour tous les utilisateurs du monde en même temps, etc.), mais universalise la surveillance et le tracking, raisons pour lesquelles le principe des « Web applications » est poussé, en même temps que les Clouds.

L'appel à un service externe (un service se trouvant sur un serveur distant, dont on ne connaît ni la géolocalisation ni les intentions de l'opérateur), nécessite une ou des requêtes HTTP (et leurs entêtes) porteuses de révélations sur les faits et gestes des internautes.

Les navigateurs Web se vident de plus en plus des actions locales au profit d'actions déportées appelées avec des APIs. Ceci va de pair avec les tentatives industrielles de nous vendre ce que nous n'avons pas encore (principe industriel et commercial de créer le besoin) - des tablettes et smartphones : sortes d'ordinateurs :

  • vidés de nos données (pas de disque dur ou de mémoire locale) qui sont déportées ailleurs, dans des nuages appartenant à on ne sait qui et que nous ne maîtrisons pas. Il faut payer des abonnements mensuels pour accéder à nos données strictement personnelles et privées, et payer encore pour ne pas les perdre définitivement
  • vidés de nos programmes dont nous n'achetons plus une licence que nous pouvons conserver 10 ou 20 ans si elle nous donne satisfaction, mais pour lesquels il faut payer des abonnements mensuels pour accéder à nos données ou faire quoi que ce soit qui sera surveillé.

Typiquement, l'abandon des plug-ins dans les navigateurs Web (les plug-ins dans l'ordinateur de l'internaute), pour les remplacer par des services Web (et des APIs pour les solliciter) universalise définitivement la surveillance et le tracking de la totalité des internautes du monde, ce que les acteurs avaient commencé à faire avec leurs principes d'encerclement.

Dossier (collection) : Plugins et extensions

Plug-ins et extensions
Différences entre plug-ins et extensions

Extensions
Extension
Module additionnel (synonyme d'extension)
Module complémentaire (synonyme d'extension)
Module d'extension (synonyme d'extension)
Module externe (synonyme d'extension)
Application extérieure servant à personnaliser (synonyme d'extension)
Addin (synonyme d'extension)
Add-in (synonyme d'extension)
Additif (synonyme d'extension)
Addon (synonyme d'extension)
Add-on (synonyme d'extension)

Plug-in
Plug-in
Plugin (synonyme de plug-in)
Plug in (synonyme de plug-in)
Plugiciel (synonyme de plug-in)
Greffon (synonyme de plug-in)
Composant logiciel enfichable (synonyme de plug-in)
Mise à jour de tous les plugins dans tous les navigateurs d'un seul clic
HTML5 et abandon de la notion de plug-in fin 2016

Techniques d'accueil des plug-ins dans les navigateurs Web
NPAPI (mécanisme d'accueil des plug-ins dans les navigateurs)
PPAPI (mécanisme d'accueil des plug-ins dans les navigateurs)
Navigateurs Web
Navigateurs Androïd

Quelques exemples de plug-ins
Plug-in Adobe Flash Player (Shockwave)
Plug-in Java
Plug-in Silverlight
Plug-in Acrobat (.pdf)

Techniques de remplacement des plug-ins à partir du 1er janvier 2017
WHATWG Web Hypertext Application Technology Working Group
HTML5
API (Application Programming Interface)

Mise à jour de tous les plug-ins, pour tous les navigateurs
Mise à jour de tous les plug-ins dans tous les navigateurs
Mise à jour des plug-ins dans Google Chrome
Mise à jour des plug-ins dans Internet Explorer
Mise à jour des plug-ins dans Opera
Mise à jour des plug-ins dans Safari
Mise à jour des plug-ins dans Firefox