HomeBlogLes 5 méthodes HTTP fondamentales dans les API RESTful
Aperçus de l'API

Les 5 méthodes HTTP fondamentales dans les API RESTful

Les principales méthodes HTTP (idempotentes et non-idempotentes) utilisées dans le développement d'API REST

HTTP Methods

L'approche REST est l'une des plus répandues dans la conception et le développement des API web. Dans l'architecture REST, basée sur HTTP, les opérations se font à l’aide de «verbes» spécifiques appelés Méthodes HTTP, qui permettent d’interagir avec les ressources.

Les 5 Méthodes HTTP les plus courantes dans le développement des API RESTful sont GET, PUT, DELETE, POST et PATCH: ces «verbes» essentiels permettent d’exécuter les opérations dites CRUD (Create, Read, Update, Delete), c’est-à-dire de créer, lire, mettre à jour et supprimer des ressources.

API REST: qu’est-ce que c’est

Les API REST, ou RESTful, sont celles qui suivent les principes du Representational State Transfer (REST), un style architectural défini en 2000 par l’informaticien Roy Fielding, qui prévoit, entre autres, la séparation nette entre client et serveur, l’adoption d’interfaces uniformes et la création d’une structure en couches dans laquelle chaque niveau a ses propres responsabilités.

Lorsqu’une requête est effectuée via une API REST, cette dernière transfère au client non pas la ressource elle-même, mais une représentation de son état, suffisante toutefois pour répondre à la demande.

Pour être considérée comme RESTful, une API doit respecter les principes suivants:

  • Communication client-serveur sans état: chaque requête est indépendante et aucune information n’est conservée;

  • Possibilité de mettre les données en cache;

  • Interface uniforme: cela signifie que les ressources doivent être identifiables et séparées des représentations envoyées au client, et doivent pouvoir être manipulées via cette représentation;

  • Système en couches qui organise les serveurs selon une hiérarchie précise (invisible pour le client).

L’application de ces concepts permet de développer des API rapides, légères et faciles à faire évoluer, et constitue aujourd’hui la base du développement des API web.

Le rôle des Méthodes HTTP dans les API RESTful

Dans une requête API RESTful, l’information (c’est-à-dire la représentation de la ressource) peut être transférée dans différents formats, du JSON au HTML. La communication, toutefois, se fait toujours via une requête HTTP.

Les Méthodes HTTP, en particulier, sont des composants essentiels de toute API REST, car elles permettent au client de spécifier l’action à effectuer sur la ressource et donc d’interagir avec elle. Aussi appelés « verbes » HTTP, ces éléments sont présents dans chaque requête API RESTful et permettent au client d’exécuter des actions CRUD (Create, Read, Update, Delete) sur les ressources de manière standardisée et prévisible.

Dans une architecture API REST, on utilise aussi bien des Méthodes HTTP idempotentes comme GET et PUT, qui permettent de développer un service web efficace et tolérant aux erreurs, que des méthodes non idempotentes. La différence est fondamentale : avec des méthodes idempotentes, plusieurs appels différents avec les mêmes paramètres produisent le même effet qu’un seul appel, sans multiplier les effets possibles de l’opération sur le serveur et en renvoyant toujours la même information. À l’inverse, avec des « verbes » non idempotents comme POST et PATCH, l’état du serveur peut être modifié, exposant le système à divers effets secondaires, y compris la création de ressources non désirées.

Les 5 Méthodes HTTP fondamentales dans les services API RESTful

Parmi les Méthodes HTTP les plus courantes dans les API REST, on trouve GET, PUT, DELETE, POST et PATCH, qui permettent au client de lire une ressource, la créer, la supprimer ou la modifier:

  • GET: est la méthode la plus courante dans les requêtes API. Elle sert à demander une vue des données au serveur et est idempotente: répéter la même requête plusieurs fois renverra la même représentation, sans modifier l’état du serveur;

  • PUT: met à jour une ressource existante en remplaçant l’intégralité de son contenu ou en crée une nouvelle ; elle est surtout utilisée pour mettre à jour les ressources. Lors de la création, en effet, elle peut générer des ressources par erreur;

  • DELETE: supprime une ressource. Elle peut être considérée comme idempotente, mais peut laisser l’URL de la ressource supprimée disponible, avec des conséquences possibles sur la cohérence des réponses suivantes du serveur;

  • POST: est la seule méthode qui agit principalement sur des collections de ressources. Elle sert à créer une ressource subordonnée avec une URL au sein d’une collection, en l’associant à une hiérarchie précise. Elle n’est pas intrinsèquement idempotente: chaque appel peut potentiellement créer une nouvelle ressource;

  • PATCH: comme PUT, est utilisée pour mettre à jour des ressources. Elle fonctionne en modifiant partiellement le contenu des ressources via des formats standards comme JSON et XML. Répéter une même requête PATCH peut conduire à des états différents de la ressource, donc elle n’est pas idempotente (le verbe peut toutefois être utilisé de manière idempotente).

Seules les méthodes idempotentes peuvent être considérées comme sûres, car elles n’ont pas d’impact sur l’état du serveur et permettent de prévoir les effets des opérations du client sur le serveur et les ressources. Cependant, même les méthodes non idempotentes comme POST et PATCH peuvent être utilisées en toute sécurité en mettant en place des systèmes d’authentification, d’autorisation et de gestion des appels API adéquats.

Autres Méthodes HTTP pour le développement d’API

Outre les cinq Méthodes HTTP décrites, liées aux opérations CRUD, il en existe d’autres très utiles dans le développement des API RESTful, car elles ne modifient pas l’état de la ressource mais permettent d’exécuter des actions importantes comme vérifier son état ou suivre le parcours d’une requête:

  • HEAD: sert à interroger les métadonnées des ressources, par exemple pour vérifier leur taille ou leur état avant de procéder à une autre requête;

  • OPTIONS: permet d’obtenir une liste des méthodes supportées par la ressource interrogée, et donc de déterminer quelles opérations sont possibles sur celle-ci;

  • TRACE: peut être utilisé comme outil de débogage car il permet au client de voir comment sa requête est modifiée par les serveurs intermédiaires. Il ne modifie pas l’état du serveur mais est une méthode très sensible, car elle peut exposer des données sensibles. Il existe d’ailleurs un type d’attaque informatique, appelé Cross-Site Tracing (XST), basé exclusivement sur cette Méthode HTTP.

Les Méthodes HTTP sont l’un des piliers fondamentaux dans le développement des API RESTful: en définissant les opérations de manière standardisée et prévisible, elles rendent les API interopérables et facilitent leur intégration dans les applications. L’usage du standard rend aussi les API plus intuitives et faciles à utiliser pour le client.

Les 5 méthodes HTTP fondamentales dans les API RESTful
Partager sur