HTTP et REST

63 %
38 %
Information about HTTP et REST
Technology

Published on March 21, 2014

Author: luctrudeau

Source: slideshare.net

Description

Mes diapositives sur REST. Il s'agit de mon interprétation de ce que REST est devenu avec les années. J'essaie de faire le lien avec SOAP, lorsque possible (mais le thème principal n'est pas SOAP vs RESTful HTTP).

Luc Trudeau Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International. HTTP et REST

L Trudeau Attributs de qualité 2 HTTP et REST Quels attributs de qualité doivent être prédominants pour justifier une conception orientée services?  Interopérabilité  Extensibilité

L Trudeau 3 HTTP et REST RESTful HTTP SOAP Ref: http://caharvey.deviantart.com/art/Death-Battle-Legolas-vs-Hawkeye-403741898

L Trudeau 4 HTTP et REST Ref: http://www.comicvine.com/forums/battles-7/legolas-vs-hawkeye-movie-versions-752101/ RESTful HTTP Extensibilité Attribut de qualité principale http://images1.wikia.nocookie.net/__cb20111011203834/marvelmovies/images/f/f0/Hawkeye_avengers_movie.JPG SOAP Interopérabilité Attribut de qualité principale

L Trudeau 5 HTTP et REST Lequel est le meilleur? Ça dépend! On pourrait dire : SOAP : Si vous êtes à l’intérieur d’une compagnie et votre attribut de qualité principale est l’interopérabilité. RESTful HTTP: Si vous êtes sur le web et votre attribut de qualité principale est l’extensibilité Facile! Web == !SOAP ? Non! Par exemple, Bing Search offre un service SOAP.

L Trudeau REST Vs. RESTful HTTP 6 HTTP et REST

L Trudeau Style Architectural? 7 HTTP et REST Photo Ref: http://inspectapedia.com/interiors/Architectural_Styles.htm

L Trudeau Qu’est-ce qu’un style architectural 8 HTTP et REST • Une description abstraite • La conception dépend implicitement du style architectural • Limite les possibilités sur les stratégies de conception (contraintes) • Fournit un cadre et un vocabulaire pour les éléments d’une conception de haut niveau Architecture Gothique Documenting Software Architecture 2e édition Software Design, Budgen 2e édition LOG430/MGL802/MGL844 Ref : http://www.vam.ac.uk/content/articles/g/gothic-architecture/

L Trudeau Qu’est-ce que REST? 9 HTTP et REST REST est une description abstraite La conception de vos services web dépend implicitement de REST REST limite les possibilités sur les stratégies de conception (contraintes) REST fournit un cadre et un vocabulaire pour les éléments d’une conception de haut niveau Attention! REST n’est pas une technologie, mais bien un style architectural. Plusieurs mélangent REST et RESTful HTTP.

L Trudeau Style vs. Patron? 10 HTTP et REST Un style est moins rigide et plus général qu’un patron  Le patron est plus rigide, car il vise à résoudre un problème en fonction d’un contexte  Le style est moins rigide, car il s’agit d’une approche ou une façon de faire. Le patron observateur Photo Ref: http://en.wikipedia.org/wiki/Observer_pattern Photo Ref: http://msdn.microsoft.com/en-us/library/bb972931.aspx Le style en couches

L Trudeau Principes fondamentaux REST 11 HTTP et REST • Sure (Safe) • Idempotence • Sans état • Antémémorable (Cacheable)

L Trudeau Une méthode sure 12 HTTP et REST Une méthode sure :  N’effectue aucune action significative autre que l’obtention d’information  Ne génère pas d’effets collatéraux Ref: RFC2616 http://www.ietf.org/rfc/rfc2616.txt Exemple: Une requête pour effacer une ressource n’est pas sure. http://www.monservice.com/delete?=1234 Imaginez un “crawler” qui trouve ce lien…

L Trudeau Idempotence 13 HTTP et REST Les effets collatéraux de N > 0 demandes sont les mêmes que pour une seule demande Ref:http://www.youtube.com/watch?v=6dVNdFwqeKs&feature=c4-overview&list=UUzaZL1VLtdVTiZ8k07z65jg

L Trudeau Antémémorable (Cacheable) 14 HTTP et REST Une réponse est antémémorable si elle peut être conservée à l’intérieure d’une antémémoire 2 + 2 = 4 (toujours, même quand il pleut) La réponse à cette requête est antémémorable Une requête pour la température n’est pas antémémorable Cependant, je peux la conserver dans un cache pour une courte période de temps (Eventual Consistency). Pour plus d’info : http://en.wikipedia.org/wiki/Eventual_consistency

L Trudeau HTTP est une instance de REST 15 HTTP et REST En Java, on pourrait exprimer cette relation de la façon suivante: REST http = new HTTP();

L Trudeau Comment HTTP est-il une instance de REST? 16 HTTP et REST REST impose 5 contraintes  Architecture Client Serveur  Architecture en couche  Serveur sans-état  Identification des éléments Antémémorable (Cacheable)  Interface uniforme • Requêtes par ressource • Manipulation par ressource • Messages autodescriptifs • Hypermédia pour représenter l’état (HATEOAS) En fait il y en a 6, mais le code sur demande est optionnel. Alors, concentrons-nous sur l’essentiel.

L Trudeau RESTful HTTP 17 HTTP et REST Est-ce que HTTP est client-serveur?

L Trudeau RESTful HTTP 18 HTTP et REST Est-ce que HTTP est en couche? À quel niveau se trouve-t-il? Pourquoi n’est-il pas au niveau 5? Qu’est-ce que ça implique d’être au niveau 7? Ref: http://www.cubrid.org/files/attach/images/220547/186/504/http_vs_spdy.png

L Trudeau RESTful HTTP 19 HTTP et REST Est-ce possible d’identifier les éléments antémémorable? Oui! Comment?  Pragma: no-cache HTTP  Expires: Fri, 30 Oct 1998 14:19:41 GMT  Cache-Control: max-age=3600, must-revalidate Ref: http://www.mnot.net/cache_docs/

L Trudeau Un Outil pour vous aider 20 HTTP et REST http://redbot.org/?descend=True&uri=http://www.etsmtl.ca

L Trudeau RESTful HTTP 21 HTTP et REST Est-ce que HTTP possède une interface uniforme? GET : sure, idempotent, antémémorable PUT : idempotent DELETE : idempotent HEAD : sure, idempotent POST Danger! Théorie vs. Pratique

L Trudeau RESTful HTTP 22 HTTP et REST Est-ce que HTTP est sans état? Oui! Mais ma session Gmail? Elle est avec état et utilise HTTP. L’état n’est pas fourni par le protocole HTTP, et le protocole n’est pas conçu en fonction de cette session, c’est le serveur qui gère cet état Alors, je peux faire ce que je veux sur le serveur? Oui, mais ça ne sera pas « RESTful ». Quand qu’on dit qu’on dit qu’un « RESTful HTTP Service » ceci implique que le service respect les contraintes REST et par le fait même celles de HTTP

L Trudeau RESTful HTTP 23 HTTP et REST Alors Gmail n’est pas REST? Mais je pensais que Google utilisait REST? En ce qui concerne Gmail, je ne peux pas répondre, mais REST ne veut pas dire sans-état, mais bien serveur sans- état. Il peut y avoir des états sur le client. Une autre approche est d’inclure l’état à la requête. Oui, mais je gaspille de la bande passante! C’est un compromis entre la bande passante, les ressources sur le serveur et l’usage d’antémémoire. Cependant, ce choix s’aligne avec les attributs de qualités de REST.

L Trudeau RESTful HTTP 24 HTTP et REST

L Trudeau Recette REST de Lucardo 25 HTTP et REST Voici une recette facile pour transformer vos services en services REST • Identifiez les ressources et concevez vos URI • Choisissez vos formats • Identifiez les méthodes et leur sémantique • Choisissez vos codes de réponses

L Trudeau Pensez en terme de noms 26 HTTP et REST En REST on ne pense pas en terme d’opérations ou d’action En REST on pense en terme de noms et d’identifiants

L Trudeau C’est Mal! 27 HTTP et REST http://api.example.com/listChiens http://api.example.com/getChien?id=1234… http://api.example.com/newChien?id=1234… http://api.example.com/setChien?id=1234… http://api.example.com/listChienRouge …

L Trudeau L’approche REST 28 HTTP et REST http://api.example.com/chiens

L Trudeau L’interface uniforme 29 HTTP et REST Ressource POST GET PUT DELETE /chiens Créer un nouveau chien Liste de tous les chiens Remplacer les chiens par d’autres chiens Effacer tous les chiens /chiens/123 4 Ajouter un chien au chien 1234 erreur Afficher chien 1234 S’il existe, modifier le chien Sinon, créer le chien erreur Effacer le chien

L Trudeau Singulier ou pluriel? 30 HTTP et REST PLURIEL http://api.example.com/chiens http://api.example.com/chiens/1234 NE FAITES PAS! http://api.example.com/chiens http://api.example.com/chien/1234

L Trudeau Impact sur votre conception 31 HTTP et REST Ref: http://www.infoq.com/presentations/qcon-tilkov-rest-intro

L Trudeau Associations 32 HTTP et REST Tous les chiens de Bob (GET) http://api.example.com/bob/chiens Ajouter un chien à bob (POST) http://api.example.com/bob/chiens

L Trudeau REST Pure vs REST Pragmatique 33 HTTP et REST Ref: https://xkcd.com/386/ XKCD Duty Calls

L Trudeau Classification des APIs HTTP 34 HTTP et REST WS-* Web Services (SOAP) RPC URI-Tunneling (flickr 'REST' API) API exposé par ressources, mais les actions proviennent de paramètres dans l’URI HTTP-based (Twitter, Google Calendar) API exposé par ressources, Méthodes HTTP utilisées, utilisation de types génériques REST (Open Search) Réf: http://nordsc.com/ext/classification_of_http_based_apis.html#uri-rpc Ref: http://martinfowler.com/articles/richardsonMaturityModel.html

L Trudeau Les versions 35 HTTP et REST Comment spécifier la version d’un API REST? Conseil :  Insérer la version dans l’URL  Les plus à gauche possible Par exemple : http://api.example.com/v1/chiens

L Trudeau Comment spécifier le Format ? 36 HTTP et REST Une approche REST pure utilise l’entête Accept: Accept: application/json Plusieurs approches utilisent un paramètre ?type=json Conseil: ajouter le format à l’URL pour simuler une extension http://api.example.com/v1/chiens.json http://api.example.com/v1/chiens.xml

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Restaurant ET - fransk restaurant i hjertet af Aarhus

Fransk restaurant i hjertet af Aarhus, hvor autentisk fransk mad og vinkultur møder dansk kreativitet i et smagfuldt univers.
Read more

Learn REST: A Tutorial

Learn REST: A Tutorial ... and in virtually all cases, the HTTP protocol is used. REST is an architecture style for designing ... (SOAP, WSDL, et al.).
Read more

A Brief Introduction to REST - InfoQ: Software Development ...

A Brief Introduction to REST. ... I’ve avoided taking great care to separate REST from HTTP itself and the use of HTTP in a RESTful way.
Read more

restaurant seetal - Restaurant Seetal

SERVUS im Restaurant Seetal in Beinwil am See! Familie Schelesen und Mitarbeiter heissen Sie herzlich willkommen in unserem Restaurant. Wir bieten Ihnen ...
Read more

Les Asturies, Viens et reste - YouTube

LES ASTURIES Viens et reste. Category Travel & Events; License Standard YouTube License; Show more Show less. Loading... Autoplay When autoplay ...
Read more

REST Industry Super - Home

REST Industry Super is Australia's largest super fund by membership, with over 1.8 million members. Open to all Australians, it is award winning with low ...
Read more

Rest Models

Welcome to the official website of the "Rest Models" company! We produce high-quality scale models kits and scale figures.
Read more

Apache ActiveMQ ™ -- REST

Mapping of REST to JMS. To publish a message use a HTTP POST. To consume a message use HTTP DELETE or GET.
Read more

EntrecoteC´est bon C´est bon!

C´est bon C´est bon! Das Entrecôte ist Restaurant et Brasserie im Herzen von Berlin. Man sagt, im Entrecôte sei ein Hauch von Paris zu spüren.
Read more

Tutorial EJB3 Entity Session Web Service SOAP et REST sur ...

Tutorial EJB3 Entity Session Web Service SOAP et REST sur JBOSS 7
Read more