Quelqu'un utilise t'il respond_to (>= Rails 1.1)

Voila,

je souhaite me faire un petit service REST avec lequel je communique
depuis un composant Ajax (un event onchange sur un textfield me
recharge en asynchrone un textarea)
je suis tombe sur la methode respond_to, qui joue avec le Accept du HTTP
Header (tres astucieux)
A voir sur le blog David: http://www.loudthinking.com/arc/000572.html

Apparemment , Prototype intercepte le POST et positionne le Accept avec
text/javascript…ce qui ne me laisse pas d’autre choix cote de serveur
que d’utiliser JSON pour les donnees.
Quelqu’un a t’il tente en servant du XML cote serveur, et respond_to
dans le c
ontroller ?

Laurent

Salut Laurent,

je souhaite me faire un petit service REST avec lequel je
communique depuis un composant Ajax (un event
onchange sur un textfield me
recharge en asynchrone un textarea)
je suis tombe sur la methode respond_to, qui joue avec le
Accept du HTTP Header (tres astucieux)
A voir sur le blog David: http://www.loudthinking.com/arc/000572.html

A noter que le point de vue de DHH a évolué sur ceci, en ce sens
que le fait de ne pas différencier dans l’url foo/bar si on doit
renvoyer
par exemple du HTML, du XML ou du JS, ne facilite pas la mise
en cache.

D’où un retour vers les “extensions de fichiers”, ie foo/bar.xml ou
foo/bar.rss ou foo/bar.atom … avec une même action qui retournera
du XML, de l’ATOM selon l’extension demandée, tout en bypassant
(court-circuitant) l’en-tête Accept.

Donc peut-être devrais-tu regarder de ce côté-ci, sachant que
ma mémoire flanchant un peu, l’utilisation des extensions de fichiers
dans les routes le mot-clé :format et côté contrôleur, via
params[:format],
est une fonctionnalité qui n’est peut-être que dispo dans Edge et donc
dispo dans 1.2 dans un futur proche…

Apparemment , Prototype intercepte le POST et positionne le Accept avec
text/javascript…ce qui ne me laisse pas d’autre choix cote de serveur
que d’utiliser JSON pour les donnees.
Quelqu’un a t’il tente en servant du XML cote serveur, et respond_to
dans le c
ontroller ?

Donc l’intérêt, c’est que même si tu ne peux positionner le
Accept comme tu veux, si tu forces la demande en xml (ie url en
“foo/bar.xml”), respond_to devrait te cracher du xml…

Cela dit, j’ai pas encore essayé cette fonctionnalité, hein.

– Jean-François.

Merci Jean Francois,

je peux essayer ca en effet.

Sinon, je me disais finalement, plutot que cracher du XML pour mon
service, ne devrais je pas pour etre tranquille le faire en Javascript
(JSON, ou commande Javascript)

C’est pourquoi, je vais explorer aussi les possibilités avec RJS

Laurent

Jean-François wrote:

Salut Laurent,

je souhaite me faire un petit service REST avec lequel je
communique depuis un composant Ajax (un event
onchange sur un textfield me
recharge en asynchrone un textarea)
je suis tombe sur la methode respond_to, qui joue avec le
Accept du HTTP Header (tres astucieux)
A voir sur le blog David: http://www.loudthinking.com/arc/000572.html

A noter que le point de vue de DHH a évolué sur ceci, en ce sens
que le fait de ne pas différencier dans l’url foo/bar si on doit
renvoyer
par exemple du HTML, du XML ou du JS, ne facilite pas la mise
en cache.

D’où un retour vers les “extensions de fichiers”, ie foo/bar.xml ou
foo/bar.rss ou foo/bar.atom … avec une même action qui retournera
du XML, de l’ATOM selon l’extension demandée, tout en bypassant
(court-circuitant) l’en-tête Accept.

Donc peut-être devrais-tu regarder de ce côté-ci, sachant que
ma mémoire flanchant un peu, l’utilisation des extensions de fichiers
dans les routes le mot-clé :format et côté contrôleur, via
params[:format],
est une fonctionnalité qui n’est peut-être que dispo dans Edge et donc
dispo dans 1.2 dans un futur proche…

Apparemment , Prototype intercepte le POST et positionne le Accept avec
text/javascript…ce qui ne me laisse pas d’autre choix cote de serveur
que d’utiliser JSON pour les donnees.
Quelqu’un a t’il tente en servant du XML cote serveur, et respond_to
dans le c
ontroller ?

Donc l’intérêt, c’est que même si tu ne peux positionner le
Accept comme tu veux, si tu forces la demande en xml (ie url en
“foo/bar.xml”), respond_to devrait te cracher du xml…

Cela dit, j’ai pas encore essayé cette fonctionnalité, hein.

– Jean-François.