[Cheyenne] Produire du JSON, XML
trigram11-Jun-2011/15:06:40+2:00
Il est indiqué dans la doc :


It is also possible to produce your own content by replacing the response buffer with your own series (binary! or string!). The typical use case for this is dynamically producing an image (for a Captcha for example). See BUFFER documentation for more information and example.

Also, remember that RSP templates are not limited to HTML, they can be used with any other text-based file formats like XML, CSS, Javascript/JSON,...(just be sure to set the proper response's Content-Type in such cases)


Comment faire pour produire du JSON ? du XML ?

On peut utiliser les fonctions comme emit ou print, changer le Content-Type mais pour qu'au final je puisse télécharger un fichier JSON ou XML en résultat ?
DocKimbel11-Jun-2011/21:34:35+2:00
De la même manière que pour HTML, ça reste du "templating" quelque soit le contenu du template.
<?xml version="1.0" encoding="UTF-8"?>
<contact>
    <name><%=nom%></name>
    <prenom><%=prenom%></prenom>
</contact>


Idem pour n'importe quel autre type de fichier texte (JSON, JS, CSS, etc...). Il faut juste faire attention à l'encoding et faire les conversions requises (ex: UTF-8).
trigram12-Jun-2011/0:47:14+2:00
Ca ok, mais c'était plus pour avoir le résultat sous forme %contact.xml

Faut-il binder XML et JSON vers RSP ?

globals [
   bind-extern RSP to [.j .rsp .r .xml .json]
]


Ca fonctionne évidemment, mais est-ce la bonne méthode ?
DocKimbel12-Jun-2011/16:54:09+2:00
Ca ok, mais c'était plus pour avoir le résultat sous forme %contact.xml

Je ne suis pas sûr de bien comprendre, tu veux pouvoir accéder à une ressource XML en utilisant une URL se terminant en .xml (ex: http://domain.com/contact.xml), ou bien générer un fichier XML local sur le serveur (ex: %contact.xml) à partir d'un script RSP ?

Pour requêter sur une URL en .xml tout en utilisant les RSP, le bind-extern est la seule option a priori.
trigram13-Jun-2011/0:44:47+2:00
Effectivement, je ne suis pas très clair...

En fait, je voudrai recevoir un fichier XML (appel à une URL qui renvoi un fichier XML) et utilisation du templating RSP pour générer le-dit fichier XML.

Donc pour générer un fichier XML en templating RSP, on peut faire du bind-extern sur le format XML, JSON...

Mais je me demandai donc si il était possible d'avoir un appel à une RSP qui écrit dans le buffer du XML avec le bon Content-Type et que l'on renvoi le fichier XML avec le nom Contact.xml ayant appelé Contact.rsp ?
DocKimbel13-Jun-2011/10:53:13+2:00
Oui, il suffit d'ajouter une entête HTTP "Content-Disposition" dans la réponse. Il y a un exemple ici: http://cheyenne-server.org/docs/rsp-api.html#def-37.
DocKimbel13-Jun-2011/10:53:55+2:00
Je reposte l'URL sans le point final: http://cheyenne-server.org/docs/rsp-api.html#def-37
trigram13-Jun-2011/11:41:07+2:00
Exactement cela !

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2