API

REST

Le transfert d'état de représentations (REST) est un style d'architecture logicielle qui utilise un sous-ensemble d'HTTP. Il est communément utilisé pour créer des applications interactives qui utilisent des services webs. Un service web qui suit ces lignes directrices est appelé RESTful. Un tel service web doit fournir ses ressources webs dans une représentation textuelle et permettre de les lire et de les modifier à l'aide d'un protocole sans état et d'un ensemble d'opérations prédéfinies. Cette approche permet l'interopérabilité entre les systèmes informatiques sur l'Internet qui fournissent ces services. REST est une alternative par exemple au protocole SOAP qui permet d'accéder à un service web.

Des ressources webs étaient définis premièrement sur le web comme étant des documents ou des fichiers identifiés par leur URLs. Aujourd'hui, la définition est bien plus générique et abstraite, et inclut chaque chose, entité, ou action pouvant être identifiée, nommée, adressée, gérée ou exécutée, de quelque manière que ce soit sur le Web. Dans un service web RESTful, les requêtes effectuées à une URI de ressource obtiennent une réponse avec un chargement formaté en HTML, XML, JSON, ou quelque autre format. Par exemple, la réponse peut confirmer que l'état de la ressource a changé. La réponse peut également inclure des liens hypertextes vers des ressources liées. Le protocole le plus commun pour ces requêtes et ces réponses est HTTP. Il fournit des opérations (méthodes HTTP) telles que GET, POST, PUT, et DELETE. En utilisant des protocoles sans état et des opérations standards, les systèmes RESTful essaient de tendre vers la performance, la fiabilité et la capacité à s'étendre en réutilisant des composants pouvant être gérés et mis à jours sans affecter le système dans son entièreté, même en cours d'exécution.

Le but de REST est d'améliorer la performance, la mise à l'échelle, la simplicité, l'adaptabilité, la visibilité, la portabilité, et la fiabilité. Ceci est réalisé à travers le respect des principes de REST tels que l'architecture client-serveur, l'absence d'états, la possibilité de mise en cache, l'utilisation de systèmes multi-couches, le support de code à la demande, et l'usage d'interfaces uniformisées. Ces principes doivent être suivis pour qu'un système soit classifié en tant que système REST.