Skip to main content

Construire une API Restful, les Concepts fondamentaux

Une API à architecture Rest est un type de backend où l’on fait communiquer des données entre le client et le serveur, sous format JSON, sur différentes URL que l’on appelle des endpoint. Ainsi, cela permet de retransmettre des données structurées que l’on stock dans une Base de données (SQL ou NoSQL) à des utilisateurs qui peuvent être les utilisateurs finaux (clients, commercialisation et mise à disposition du système d’information) ou les designers et développeurs front-end qui se chargeront de communiquer avec notre API pour construire des interfaces utilisateurs.
Une API possède 4 grandes actions, que l’on retrouve dans les requêtes HTTP associées:

  • Ajout (Création) & Écriture de données ↔ méthode POST du protocole HTTP
  • Lecture de données ↔ méthode GET du protocole HTTP
  • Suppression de données ↔ méthode DELETE du protocole HTTP
  • Modification de données ↔ méthode PUT / PATCH du protocole HTTP

Ces 4 actions sont caractérisés par l’acronyme CRUD (create, read, update, delete).
Ainsi, chaque endpoint peut servir à ces 4 actions , pour lire, ajouter, supprimer ou mettre à jour les données dans le système d’information (la base de données).
Cependant, pour que notre API respecte une architecture Restful, il y a de nombreux critères.

 

Caractéristiques d'une API RESTFUL

  • Code à la demande: cela signifie qu’un client peut envoyer les requêtes http précédentes et effectuer une action algorithmique suivant le endpoint requêté et les données envoyées
  • Relation client-serveur stateless et mise en cache intelligente (c’est à dire qu’on assure une indépendance des requêtes et que l’on effectue des mise en cache intelligente afin de préserver les appels serveurs)
  • Des endpoints avec un schéma clair, exemple :
    • /utilisateurs/ donnera la liste de tous les utilisateurs en GET et permettra de créer un utilisateur en requête POST
    • /utilisateurs/<:id>/ donnera le détail d’un utilisateur en GET et permettra de modifier l’utilisateur en PATCH, PUT et de le supprimer en DELETE (prenez en compte que le paramètre “id” peut correspondre à un entier faisant indice, ou tout autre attribut unique propre à un utilisateur dans cet exemple
    • Si vous avez des séparations en groupes par exemple (ceci est valable pour tous les exemples, comme des fruits associés à un agriculteur)
      /agriculteurs/<:nom_agriculteur>/fruits/ donnera la liste de tous les fruits d’un agriculteur par exemple, car avoir une liste de fruit générique ne sert pas à grand chose

Quelles étapes pour construire une API rest ?

Pour construire une API rest, vous devez tout d’abord vous poser la question de la technologie et du langage de programmation / framework à utiliser. Ci dessous une liste des frameworks & langages que nous apprécions le plus dans notre agence de développement :

  • Python et ses frameworks tel que Django Rest Framework , Flask , Fast API
  • PHP pur ou Symfony Rest
  • Javascript & Node.js , HAPI, express.js
  • Java spring boot, Restlet

Enfin, après cette grosse étape, vous devez mettre en place votre système d’information et définir votre base de données. Libre à vous d’utiliser un système SQL et relationnel ou du NoSQL, le tout est de définir des modèles efficaces et une structure rationnelle.
Puis, vous devez définir les règles métier de votre application API rest, voir quels sont ses besoins et les actions auxquelles elle devra répondre (mettre à jour un utilisateur, effectuer un traitement algorithmique particulier lors de telle action… De plus, il est important de définir des restrictions et de la sécurité au sein de votre API, car les actions de suppression ou de mise à jour par exemple doivent être restreintes ou authentifiées, mise en place de rôle (la où le django rest framework répond parfaitement à toutes ces questions) et d’utilisateurs. Et la règle primordiale est bien évidemment de respecter les design pattern fondamentaux lors du développement de votre application.

Pour nous, le meilleur choix pour construire une API 100% rest est d’utiliser le django rest framework, l’un des meilleurs sur le marché open source.