L3 Info : PHP et Applications Web
 
◃  Ch. 7 CRUD  ▹
 

REST (representational state transfer)

  • REST : style d'architecture logicielle définissant un ensemble de contraintes à utiliser pour créer des services web.
  • Les services web conformes au style d'architecture REST sont appelés services web RESTful
  • Chaque URI (I pour Identifier) est une représentation textuelle d'une collection d'éléments ou d'un élément qui peuvent être manipulés à l'aide d'opérations prédéfinies et sans état.
  • Nécessite en général de mettre en place de la récriture d'URI.
    • http://www.site.net/livres indique une collection (livres au pluriel)
    • http://www.site.net/livre/100/ indique un élément précis (livre au singulier)
  • Les opérations possibles sur les collections ou les éléments sont associées aux verbes HTTP ainsi :
    Verbe HTTP GET PUT POST DELETE
    URI de collection (ex : http://www.site.net/livres/ ) Récupère les URI et éventuellement d'autres détails des éléments de la collection. Remplace la collection complète. Crée un nouvel élément dans la collection, l'URI du nouvel élément est attribué automatiquement. Supprime la collection
    URI d'élément (ex : http://www.site.net/livre/100/ ) Récupère une représentation de l'élément sélectionné de la collection, exprimée dans un type de médias approprié. Remplace l'élément sélectionné de la collection, ou s'il n'existe pas, le crée. rarement utilisé Supprime l'élément sélectionné de la collection
  • La méthode GET est sûre (en anglais, on peut dire nullipotent), c'est-à-dire qu'elle n'a pas d'effet de bord : ni la recherche ni l'accès ne modifient l'enregistrement.
  • Les méthodes PUT et DELETE sont idempotentes, c'est-à-dire que la répétition d'une même requête ne change pas l'état du système.