Ouverture du forum d'entraide REST : Representational State Transfer

Le , par Ricky81, Expert éminent sénior
Bonjour,

Ce forum se destine à vos questions touchant aux architectures REST (Representational State Transfer) et à la recherche de solutions techniques.

Il est complémentaire de certains forums techniques tournés vers des implémentations / frameworks particulier :

REST étant transverse aux différentes technologies / langages, si vous ne trouvez pas de forum dédié à un framework ou une technologie particulière, posez vos questions techniques dans le présent forum en attendant mieux

Toute suggestion et contribution est la bienvenue.

En complément : Ressources REST à consulter et télécharger


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Tommy31 Tommy31 - Membre chevronné http://www.developpez.com
le 05/07/2009 à 17:52
Je me pose la question de la nécessité d'utiliser des Etags pour la gestion du changement dans les resources ?
Avatar de LDDL LDDL - Membre habitué http://www.developpez.com
le 07/07/2009 à 9:00
heuu... c'est quoi un Etags ?
Avatar de nicorama nicorama - En attente de confirmation mail http://www.developpez.com
le 07/07/2009 à 9:23
Citation Envoyé par Tommy31  Voir le message
Je me pose la question de la nécessité d'utiliser des Etags pour la gestion du changement dans les resources ?

Dixit Wikipedia :
The header is useful for intermediary devices that perform caching, as well as for client web browsers that cache results.

Avec Etag, et les autres headers (Last-Modified, Expires, If-Modified-Since, If-None-Match), on peut définir précisemment ce qui a besoin d'être downloadé ou pas. Au passage, on peut compresser aussi

Je ne m'en occupe pas, c'est mal, mais c'est beaucoup de boulot, pas juste un header à remplir. Il faut définir quelles sont les resources appropriée, comment calculer le Etag sans risquer une catastrophe, avoir une stratégie sur la durée du cache... et savoir si l'économie sur la bande passante est plus grande que le temps passé par le developpeur.
Avatar de fbaligand fbaligand - Membre à l'essai http://www.developpez.com
le 07/07/2009 à 10:26
Nul besoin de se compliquer la vie à "développer" ce genre de fonctions.
Apache fournit des modules qui font ça très bien.
Avatar de nicorama nicorama - En attente de confirmation mail http://www.developpez.com
le 07/07/2009 à 11:33
Citation Envoyé par fbaligand  Voir le message
Nul besoin de se compliquer la vie à "développer" ce genre de fonctions.
Apache fournit des modules qui font ça très bien.

Rhalala Ok pour renvoyer un 304 pour une image placée sur le serveur. Mais suppose un gros stock de datas, genre l'ensemble des hôtels dans la haute-garonne, avec les méta-datas qui vont bien avec.

datas dans la database->java->xml : le doc xml est la représentation de ta resource /maps/datas/hotels/31
A t-il changé depuis ta dernière connexion ? Apache n'en sais rien, mais un hash sur le document xml te renseignera et pourra éviter de dl quelques ko.
Avatar de jlouvel jlouvel - Futur Membre du Club http://www.developpez.com
le 07/07/2009 à 12:15
Avec le framework Restlet, la gestion des ETags est très simple. Il suffit de renvoyer leur valeur avec chaque GET (propriété "tag" de la classe Representation). Cette propriété est une instance de la classe Tag, ce qui facilite sa création et manipulation.

Ensuite, le framework se charge automatiquement de la vérification des méthodes conditonnelles basées sur les tags et renvoie le status 304 si nécessaire.
Avatar de nicorama nicorama - En attente de confirmation mail http://www.developpez.com
le 07/07/2009 à 12:21
Citation Envoyé par jlouvel  Voir le message
Avec le framework Restlet, la gestion des ETags est très simple. Il suffit de renvoyer leur valeur avec chaque GET (propriété "tag" de la classe Representation). Cette propriété est une instance de la classe Tag, ce qui facilite sa création et manipulation.

Ensuite, le framework se charge automatiquement de la vérification des méthodes conditonnelles basées sur les tags et renvoie le status 304 si nécessaire.

Un hash de la resource n'est pas difficile, mais il reste une stratégie à définir sur la durée de vie. Il est cependant agréable que Restlet fournisse la solution technique et laisse le concepteur concevoir les problèmes. C'est fait pour .

Un peu d'infos bien faite sur les différents headers : http://www.caucho.com/resin/doc/proxy-cache.xtp
Avatar de LDDL LDDL - Membre habitué http://www.developpez.com
le 07/07/2009 à 14:20
J'ai du mal à comprendre l'interaction du Etag. Cela intervient à quel moment et chez qui ?
Avatar de jlouvel jlouvel - Futur Membre du Club http://www.developpez.com
le 07/07/2009 à 15:21
Le ETag est une sorte d'identifiant unique de la représentation d'une resource (le document retourné par un GET pour simplifier).

Si cette représentation contient un tag, il peut être utilisé par des requêtes suivantes pour éviter de récupérer le même contenu, ou pour éviter d'écraser les changements d'un autre utilisateur (GET et PUT conditionnels).
Avatar de wiztricks wiztricks - Modérateur http://www.developpez.com
le 10/01/2010 à 16:36
Citation Envoyé par jlouvel  Voir le message
Le ETag est une sorte d'identifiant unique de la représentation d'une resource (le document retourné par un GET pour simplifier).

Le membre d'une Ressource est identifié par son URI: http:..../<<Ressource>> et un membre par son ID, ex:123

Lorsqu'on fait une lecture du membre, i.e la requête HTTP
GET ..../<<Ressource>>/123 le serveur peut retourner un ETag dans la réponse.

Cet Etag est une valeur associée à l'état de la ressource (par le serveur) ..../<<Ressource>>/123 au moment ou elle a été lue (ex: le MD5 du contenu)

Le client peut "stocker" l'Etag.

Si plus tard, le client souhaite savoir si la ressource a changé, il peut effectuer une requête de type "HTTP Head" vers l'identifiant de la ressource avec l'Etag (dans une condition "If-None-Match" de la requête).

Le serveur retourne une réponse en fonction de la valeur courante de l'Etag associée à la Ressource et celle expédiée par le Client

-W
Offres d'emploi IT
Data scientist inspection générale (H/F)
Société Générale - Ile de France - Hauts-de-Seine
Architecte de données (H/F)
Société Générale - Ile de France - Ile de France
Data engineer H/F
Safran - Ile de France - Magny-les-Hameaux /Saclay

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique ALM