Compétence Technique
API REST
Concevoir et exploiter des interfaces de communication entre applications.
Ma définition
Une API REST (Representational State Transfer) est un moyen de communication entre différentes applications. Elle permet à un logiciel d’envoyer ou de recevoir des informations depuis un autre système, généralement via Internet.
Concrètement, une API REST fonctionne comme un intermédiaire : par exemple, lorsqu’une application mobile affiche des données (comme des utilisateurs, des messages ou des réservations), elle passe par une API pour aller les récupérer sur un serveur. Les échanges se font de manière standardisée, le plus souvent au format JSON, afin que les systèmes puissent se comprendre facilement.
Pour fonctionner, une API REST utilise des actions simples correspondant à des besoins courants, comme récupérer des informations, en créer de nouvelles, les modifier ou les supprimer. Chaque élément manipulé (comme un utilisateur ou un produit) est considéré comme une ressource accessible via une adresse unique.
Dans le développement logiciel moderne, les API REST sont essentielles car elles permettent de séparer les différentes parties d’une application, c’est-à-dire le frontend, le backend et la base de données. Par exemple le frontend ne va pas directement accéder à la base de données, il va faire une requête à l’API, l’API parle au backend et à la base de données, puis elle renvoie la réponse au frontend.
Cela rend les systèmes plus flexibles, plus faciles à maintenir et capables de communiquer entre eux, même s’ils sont développés avec des technologies différentes.
Éléments de preuve
J’ai acquis mon expérience en API REST à travers plusieurs projets étudiants et professionnels.
Dans le cadre du projet Galactic Airlines, j’ai participé à la conception d’une API REST en Java avec Spring Boot, destinée à gérer les différentes entités du système (clients, vols, réservations, etc.). Cette API permettait d’exposer des endpoints pour effectuer des opérations CRUD sur les ressources, en respectant les conventions REST. J’ai ainsi travaillé sur la structuration des routes, la gestion des requêtes HTTP et la sérialisation des données.
Puis, lors de mon stage chez EasyVista, j’ai été amené à interagir avec des API REST dans le cadre du développement de modules web. Une partie de mon travail consistait notamment à intégrer des API Button, c’est-à-dire des boutons capables de déclencher des appels vers différentes routes de l’API en fonction du contexte. Cela impliquait l’utilisation de méthodes HTTP variées (GET, POST, PUT, DELETE) et la compréhension du comportement attendu côté backend.
Auto-critique
Au regard de mes différentes expériences académiques et professionnelles, je considère aujourd’hui avoir atteint un niveau confirmé dans l’utilisation et la compréhension des API REST. J’ai été amené à concevoir et consommer des API dans plusieurs contextes, ce qui m’a permis de développer une bonne maîtrise des principes fondamentaux ainsi que des bonnes pratiques de structuration des endpoints.
Je suis à l’aise dans la mise en place d’opérations CRUD, dans l’utilisation des différentes méthodes HTTP et dans la conception d’API cohérentes et exploitables par un client. J’ai également acquis une bonne compréhension du rôle central des API dans des architectures modernes, notamment dans des contextes de microservices où elles permettent d’assurer la communication entre les différents services.
Cependant, malgré ce niveau de maîtrise, certains aspects méritent encore d’être approfondis pour atteindre un niveau expert. Je n’ai pas encore eu l’opportunité de travailler sur des problématiques avancées telles que la sécurisation complète des API (authentification, autorisation, gestion fine des rôles), la gestion des performances à grande échelle ou encore la mise en place de stratégies de versioning.
Par ailleurs, bien que j’aie utilisé des outils comme Swagger et Postman pour tester et documenter des API, je souhaite renforcer mes compétences sur la documentation avancée et la standardisation des interfaces afin de proposer des API encore plus robustes et maintenables.
Perspective d'Évolution
Je souhaite atteindre le niveau expert en conception et gestion d’API REST, en approfondissant les aspects avancés liés à leur robustesse, leur sécurité et leur scalabilité.
Du point de vue de mon projet professionnel, qui est d’évoluer vers un rôle de Tech Lead, les API REST occupent une place centrale. Elles constituent le point de communication entre les différentes briques d’un système, et leur qualité a un impact direct sur la maintenabilité, la performance et l’évolutivité de l’application. Je souhaite donc être capable, à terme, de concevoir des API fiables, cohérentes et adaptées à des architectures complexes, notamment dans des environnements en microservices.
À terme, je veux être capable de prendre de bonnes décisions autour des API, d’accompagner une équipe dans leur conception et de garantir leur cohérence au sein d’un système.