Pourquoi développer une API

Par Dryusdan le

Il s’agit ici d’une question que je me suis beaucoup poser ? Pourquoi développer une API ? Pourquoi ne pas attaquer la base de données directement sur une autre application ? Pourquoi augmenter le risque d’insécurité ?

Déjà qu’est-ce qu’une API web (Car il existe les API de logiciel comme Docker ou de langage comme Java et les API de site comme Twitter) ? Selon Wikipédia une API web c’est : "A web API is an application programming interface (API) for either a web server or a web browser. It is a web development concept, usually limited to a web application's client-side (including any web frameworks being used), and thus usually does not include web server or browser implementation details such as SAPIs or web browser engine APIs unless publicly accessible by a remote web application. "

En clair, une API web est une interface de programmation une liste de fonctions que l’on peut appeler via une requête HTTP. C’est fonction peuvent faire de multiple chose comment récupérer des données dans une base de données, effectué un calcul compliqué voir même convertir un fichier puis nous le renvoyer.

Donc pourquoi développer une API pour son site ? Pour lui permettre d’évoluer plus facilement, pour séparer encore plus distinctement back-end et front-end et pour faciliter le développement d’applications mobile ou pour laisser les membres le droit de coder une « surcouche », par exemple pour un site d’e-commerce, un client recherche les bons plans de la marque « nom de la marque ici », il développe un petit bot qui, toutes les heures, demandera au site tous les bons plans, puis ce bot traitera les données reçu et fera le tri puis avertira le créateur.

Cependant, développer une API n’est pas que du bonheur, cela apporte son lot de contrainte :

  • Cela demande une réflexion, un développement spécifique
  • Il faut sécuriser son API, par exemple avec le protocole d’authentification Oauth ou les Json web token et brider le nombre de requête
  • Il faut développer plus car il faut une interface graphique qui se connecte à l’API et l’API

Il y a cependant un moyen d’éviter ça si nous n’avons pas le temps et l’utilité de développer une API : le responsive design qui permet de rendre un site compatible tout écran. Il y a moyen de tricher légèrement aussi avec certain framework, par exemple FuelPHP qui permet de renvoyer, pour réponse, une interface graphique ou une réponse en Json.

Je conseil cependant quelques excellents tutoriels sur Zeste de Savoir :