API : Interface de Programmation d'Application
En tant que développeur, j'ai l'impression d'utiliser ou de concrétiser cette notion tous les jours. Cependant, si théoriquement je devais l'expliquer je commencerais par dire qu'il s'agit d'un concept qui englobe beaucoup de choses.
Il s'agirait, dans les grandes lignes, d'une palette de définitions et de protocoles qui faciliteraient la création et l'intégration d'applications.
Par ailleurs, cette interface de programmation applicative permet à un produit ou à un service de communiquer, et c'est sans doute l'idée principale, avec d'autres produits et services. Mais il y a encore mieux. En effet, cette communication s'établit sans besoin de connaître l'ensemble des mécanismes de fonctionnement desdits produits et services.
Recommandé par LinkedIn
On peut relier à ce concept quelques objectifs clefs : un gain de temps, une source de simplification en matière de conception et de développement d'applications et tout simplement un moyen expédient de rendre la communication plus flexible. Nous verrons comment plus tard.
Ensuite, il ne faut pas croire que quelques petits détails ne sont pas à prendre en compte. En effet, le contrat d'interface entre le logiciel émetteur de la requête et le logiciel récepteur de la requête suppose l'existence de conditions. La requête doit ainsi respecter une structure particulière , structure qui sera reconnu par le récepteur de la requête qui adaptera sa réponse en fonction.
Personnellement j'aime faire des API avec Node.js (runtime). Je crée une architecture logicielle qui me permet de contrôler les requêtes qui parviennent du navigateur par exemple et d'effectuer quelques opérations de sécurisation (sanitizer, express-validator, cors, bcrypt). Enfin, si la structure et le contenu des requêtes correspondent à mes attentes je permets d'effectuer des opérations CRUD sur une base de données distante. Ceci est juste un exemple d'utilisation d'une API : un intermédiaire entre une base de données (des ressources) et un client (ici le navigateur).