Qu’est-ce qu’une API REST ? Le langage commun des applications

Comprendre les API REST : ressources, méthodes HTTP, codes de statut et bonnes pratiques, expliqués simplement.

Partager sur Linkedin Partager sur WhatsApp

Temps de lecture estimé : 7 minutes

Image de l'article Qu’est-ce qu’une API REST ? Le langage commun des applications

Quand une application météo affiche la température de votre ville, elle ne calcule rien elle-même. Elle interroge un serveur distant, reçoit une réponse et l’affiche. Ce dialogue entre deux programmes passe par une API, et dans la grande majorité des cas il s’agit d’une API REST. Voyons concrètement ce que cela signifie.

D’abord, qu’est-ce qu’une API ?

API signifie Application Programming Interface, interface de programmation applicative. C’est un contrat : un programme expose un ensemble d’opérations, décrit comment les demander et ce qu’elles renvoient, et d’autres programmes peuvent les utiliser sans rien connaître de son fonctionnement interne.

Une comparaison souvent utilisée est celle du restaurant. Vous ne pénétrez pas dans la cuisine : vous consultez la carte, passez commande auprès du serveur et recevez votre plat. La carte et le serveur forment l’interface. La cuisine peut changer de matériel ou de personnel sans que cela modifie votre façon de commander.

Ce que veut dire REST

REST signifie Representational State Transfer. Ce n’est ni un langage ni une bibliothèque : c’est un style d’architecture, un ensemble de principes que l’on choisit de suivre lorsqu’on conçoit une API accessible par le web.

Les principes essentiels sont les suivants :

  • Architecture client-serveur. Les deux parties sont séparées et évoluent indépendamment.
  • Sans état (stateless). Chaque requête contient toutes les informations nécessaires. Le serveur ne conserve pas de mémoire des échanges précédents.
  • Interface uniforme. Les mêmes conventions s’appliquent partout, ce qui rend l’API prévisible.
  • Ressources identifiées par des URL. Chaque élément manipulable possède sa propre adresse.
  • Mise en cache possible. Les réponses peuvent indiquer si elles sont réutilisables, ce qui allège la charge.

La notion de ressource

Dans une API REST, tout tourne autour des ressources : un utilisateur, un article, une commande, un produit. Chaque ressource est désignée par une URL, et la convention veut que l’on utilise des noms au pluriel plutôt que des verbes.

/articles           → tous les articles
/articles/42        → l'article dont l'identifiant est 42
/articles/42/commentaires → les commentaires de cet article

Une erreur fréquente chez les débutants consiste à mettre l’action dans l’URL, par exemple /supprimerArticle/42. Dans le style REST, l’action n’est pas dans l’adresse : elle est exprimée par la méthode HTTP employée.

Les méthodes HTTP

Le protocole HTTP fournit un petit vocabulaire de verbes, et REST s’appuie dessus.

MéthodeRôleExemple
GETLire une ou plusieurs ressourcesGET /articles/42
POSTCréer une nouvelle ressourcePOST /articles
PUTRemplacer entièrement une ressourcePUT /articles/42
PATCHModifier partiellement une ressourcePATCH /articles/42
DELETESupprimer une ressourceDELETE /articles/42

Deux propriétés importantes distinguent ces méthodes. GET est dit sûr : il ne doit rien modifier sur le serveur. GET, PUT et DELETE sont idempotents : répéter la même requête plusieurs fois produit le même résultat final. POST ne l’est pas, ce qui explique l’avertissement du navigateur lorsqu’on rafraîchit une page après l’envoi d’un formulaire.

Les codes de statut

Chaque réponse contient un code numérique qui indique ce qui s’est passé. Ils sont regroupés par familles.

FamilleSignificationExemples courants
2xxSuccès200 OK, 201 Créé, 204 Pas de contenu
3xxRedirection301 Déplacé définitivement, 304 Non modifié
4xxErreur du client400 Requête invalide, 401 Non authentifié, 403 Interdit, 404 Introuvable
5xxErreur du serveur500 Erreur interne, 503 Service indisponible

La distinction entre 4xx et 5xx est utile au quotidien : une erreur 4xx signifie que la requête envoyée pose problème, une erreur 5xx que le serveur a échoué à la traiter. Elle oriente immédiatement le débogage.

Le format des données

REST n’impose aucun format, mais JSON s’est imposé dans la pratique. Il est lisible par un humain, facile à produire et à interpréter dans presque tous les langages.

{
  "id": 42,
  "titre": "Introduction aux API",
  "auteur": "Marie Dupont",
  "publie": true
}

Le client indique le format qu’il souhaite recevoir grâce à l’en-tête Accept, et le serveur précise le format envoyé avec Content-Type.

Quelques bonnes pratiques

  • Utiliser des noms, pas des verbes, dans les URL, et rester cohérent sur tout le service.
  • Prévoir la pagination. Renvoyer cent mille éléments d’un coup n’est jamais une bonne idée : des paramètres comme ?page=2&limite=50 résolvent le problème.
  • Versionner l’API. Un préfixe comme /v1/ permet de faire évoluer le service sans casser les applications existantes.
  • Renvoyer des messages d’erreur utiles. Un code 400 accompagné d’une explication précise fait gagner un temps considérable.
  • Sécuriser les échanges. HTTPS systématiquement, et une authentification adaptée pour les opérations sensibles.
  • Documenter. Une API sans documentation est une API que personne n’utilisera correctement.

Comment s’exercer

La meilleure façon de comprendre reste d’essayer. De nombreuses API publiques permettent de faire des requêtes de lecture sans inscription, et un simple navigateur suffit pour une requête GET. Pour les autres méthodes, des outils spécialisés ou la ligne de commande avec curl font très bien l’affaire.

Observez ce que vous recevez : le code de statut, les en-têtes, la structure du JSON. Ce sont exactement les éléments que vous manipulerez ensuite dans votre propre code.

Conclusion

Une API REST n’est finalement qu’une convention partagée : des ressources identifiées par des URL, des verbes HTTP pour agir dessus, des codes de statut pour décrire le résultat et du JSON pour transporter les données. Cette simplicité explique sa domination sur le web moderne.

Si vous souhaitez approfondir le développement back-end, la programmation web ou les bases de données, Cursa propose des cours gratuits qui prolongent naturellement ces notions.

Flexbox ou CSS Grid : Quand Utiliser l’Un ou l’Autre

Flexbox gère une dimension, Grid en gère deux. Comprenez la différence, les propriétés clés et comment combiner les deux dans un vrai projet.

RECHERCHEV et RECHERCHEX : Retrouver une Donnée dans un Tableau Excel

Apprenez à utiliser RECHERCHEV et RECHERCHEX dans Excel : syntaxe, différences, erreurs fréquentes et astuces pour des recherches fiables.

Comment un Modèle de Langage Génère du Texte : Tokens, Probabilités et Contexte

Découvrez comment fonctionne un modèle de langage : découpage en tokens, prédiction du mot suivant, fenêtre de contexte, hallucinations et bonnes pratiques.

Mémoire Virtuelle et Fichier d’Échange : Ce Qui Se Passe Quand la RAM Est Pleine

Comment un système d’exploitation fait tenir plus de programmes que la RAM ne peut en contenir, et pourquoi la machine ralentit.

Qu’est-ce qu’une API REST ? Le langage commun des applications

Comprendre les API REST : ressources, méthodes HTTP, codes de statut et bonnes pratiques, expliqués simplement.

Clés Primaires et Clés Étrangères : Comprendre les Relations entre Tables

Clé primaire, clé étrangère, intégrité référentielle : les notions de base pour organiser correctement une base de données relationnelle.

Git et le Contrôle de Version : Comprendre les Bases

Découvrez à quoi sert un système de contrôle de version, les commandes essentielles de Git et les bonnes pratiques pour travailler en équipe.

Qu’est-ce que le phishing et comment s’en protéger ?

Découvrez ce qu’est le phishing, comment reconnaître ces tentatives d’arnaque en ligne et quels réflexes adopter pour protéger vos données.