background preloader

REST (representational state transfer)

Facebook Twitter

Representational state transfer. Un article de Wikipédia, l'encyclopédie libre.

Representational state transfer

REST (representational state transfer) est un style d'architecture pour les systèmes hypermédia distribués, créé par Roy Fielding en 2000 dans le chapitre 5 de sa thèse de doctorat[1]. Il trouve notamment des applications dans le World Wide Web. Contraintes[modifier | modifier le code] Une architecture REST doit respecter les contraintes suivantes : Client-serveur : les responsabilités sont séparées entre le client et le serveur. Description[modifier | modifier le code] Assimilation à un protocole ou un format[modifier | modifier le code] Ce style architectural s'applique tout autant à la réalisation d'applications pour un utilisateur humain qu'à la réalisation d'architectures orientées services destinées à la communication entre machines.

RPC ainsi que SOAP ne sont pas des styles d'architecture mais des protocoles. HTTP Methods GET vs POST. Hypertext Transfer Protocol. Un article de Wikipédia, l'encyclopédie libre.

Hypertext Transfer Protocol

L'HyperText Transfer Protocol, plus connu sous l'abréviation HTTP — littéralement « protocole de transfert hypertexte » — est un protocole de communication client-serveur développé pour le World Wide Web. HTTPS (avec S pour secured, soit « sécurisé ») est la variante du HTTP sécurisée par l'usage des protocoles SSL ou TLS. Les clients HTTP les plus connus sont les navigateurs Web permettant à un utilisateur d'accéder à un serveur contenant les données.

Il existe aussi des systèmes pour récupérer automatiquement le contenu d'un site tel que les aspirateurs de site Web ou les robots d'indexation. Historique[modifier | modifier le code] HTTP a été inventé par Tim Berners-Lee avec les adresses Web et le langage HTML pour créer le World Wide Web. En , HTTP/1.0 voit le jour et est décrit dans la RFC 1945[1]. En , HTTP/1.1 devient finalement standard de l'IETF. En , la spécification de HTTP 1.1 a été republiée. L'architecture REST expliquée en 5 règles. REST (Representational State Transfer) ou RESTful est un style d’architecture permettant de construire des applications (Web, Intranet, Web Service).

L'architecture REST expliquée en 5 règles

Il s’agit d’un ensemble de conventions et de bonnes pratiques à respecter et non d’une technologie à part entière. L’architecture REST utilise les spécifications originelles du protocole HTTP, plutôt que de réinventer une surcouche (comme le font SOAP ou XML-RPC par exemple). Règle n°1 : l’URI comme identifiant des ressources Règle n°2 : les verbes HTTP comme identifiant des opérations Règle n°3 : les réponses HTTP comme représentation des ressources Règle n°4 : les liens comme relation entre ressources Règle n°5 : un paramètre comme jeton d’authentification Les 5 règles à suivre pour implémenter REST Règle n°1 : l’URI comme identifiant des ressources REST se base sur les URI (Uniform Resource Identifier) afin d’identifier une ressource. Quelques exemples de construction d’URL avec RESTful : Liste des livres.

Link Relations. Qu’est-ce que REST ? (1/3) REST (Representational State Transfer) est l’un de ces acronymes qui représente une non technologie comme peuvent l’être Ajax, DHTML, Web 2.0 et autres.

Qu’est-ce que REST ? (1/3)

REST est un style d’architecture qui repose sur le protocole HTTP : On accède à une ressource (par son URI unique) pour procéder à diverses opérations (GET lecture / POST écriture / PUT modification / DELETE suppression), opérations supportées nativement par HTTP. Dans cette série d’articles nous allons effectuer quelques rappels sur REST, écrire un client REST, puis écrire un serveur REST sans utiliser ni framework ni bibliothèque tierce, simplement en profitant des fonctionnalités natives du langage PHP.

Principes d’une architecture REST Supposons que nous voulons réaliser un serveur REST pour gérer les livres d’une bibliothèque. Nous devons pouvoir ajouter (POST), modifier (PUT), Lire (GET) et Supprimer (DELETE) ces livres (la ressource à manipuler). Nous pourrons effectuer plusieurs manipulation sur ces livres : Ecrire un client REST en PHP (2/3) Suite à l’article dédié à la présentation des architectures RESTful nous allons maintenant voir comment consommer des services REST en PHP.

Ecrire un client REST en PHP (2/3)

Appeler un service REST en PHP est une tâche extrêmement simple car nous disposons de tous les outils pour effectuer un appel HTTP, en particulier grâce aux flux. Une requête de type GET Dans sa forme la plus simple appeler un service REST en PHP se résumé à un appel à file_get_contents qui accepte en plus des noms de fichiers des URL. Ni plus, ni moins, $livre contient bel et bien le résultat de l’appel du service REST. Bien sûr, il incombera à votre processus de convertir le résultat en résultat exploitable par votre application. Par exemple, si le format d’échange retenu était JSON : Les autres requêtes (PUT / POST / DELETE) Pour effectuer des appels de type PUT / POST / DELETE, nous allons utiliser les flux (stream) PHP, et en particulier préparer des contextes de flux grâce à la fonction stream_context_create.

Et la gestion des erreurs ? Liens. Sen.se API Documentation.