Spécification REST

La spécification REST normalise la forme d’appel des webservices; elle s’appuie sur la notion de ressources.

Exemple : la ressource users associée au end-point https://rest.jcbuisson.dev/api/users

  • chaque instance de ressource (par ex. chaque user) possède un identifiant
  • les verbes HTTP GET, POST, PUT et DELETE correspondent à des opérations de type CRUD (CREATE, READ, UPDATE, and DELETE) sur les ressources

GET : lit une ou plusieurs ressources.

Exemples :

Les deux requêtes font référence au end-point https://rest.jcbuisson.dev/api/users ; la première demande la liste de tous les utilisateurs, la seconde la liste de tous les utilisateurs hommes, la troisième l’utilisateur d’identifiant 1.

POST : créé une nouvelle ressource.

Exemple :

Cette requête créée une nouvelle resource pour le endpoint https://rest.jcbuisson.dev/api/users, c’est à dire un nouvel utilisateur. Les données qui concernent l’utilisateur doivent être placées dans la section DATA de la requête.

PUT : modifie complétement une ressource.

Exemple :

L’ensemble des données de l’utilisateur 1 doit être placé dans la section DATA de la requête.

PATCH : modifie en partie une ressource.

Exemple :

À la différence de PUT, seules les données à modifier doivent être placées dans la section DATA de la requête

DELETE : supprime une ressource.

Example:

Remarque : on ne peut supprimer qu’un seul élément par appel

HEAD est similaire à GET, mais ne renvoie que les headers et pas la réponse

OPTIONS

OPTIONS est utilisée pour obtenir les options de communication avec la cible : verbes HTTP possibles, méthodes d’authentification demandées, utilisation de la politique CORS (Cross Origin Resource Sharing). (voir ‘preflight requests’)

Remarque : la spécification REST est aussi applicable au transport Websocket