2010-10-28 6 views
0

Je fais un projet pour tester Scala et Lift chez moi, atm Je suis en train de mettre en place une API REST qui pousse XML autour. J'ai vu qu'il y a un XMLApiHelper qui offre la méthode createTag qui encapsule les réponses dans un élément racine.Scala Lift: comment encapsuler les réponses REST dans un élément racine XML?

Je l'ai fait

object RestAPI extends RestHelper with XMLApiHelper { 
    serve { 
    … 
    } 
    … 
    def createTag(in: NodeSeq): Elem = <root>{in}</root> 
} 

Cela ne semble pas fonctionner. Est-ce que je manque quelque chose?

Cordialement, raichoo

+0

Pourriez-vous définir ce que vous entendez par "ne semble pas fonctionner" plus en détail? Un message d'erreur serait un bon début ... –

+0

Il n'emballe pas le contenu dans l'élément . "Does not work" sonne un peu trop dur ^^. Je reçois très bien mes réponses xml, manquant de l'élément racine défini dans createTag. – raichoo

Répondre

2

RestHelper et XMLApiHelper ne sont pas destinés à travailler ensemble. Ils sont destinés à résoudre deux types différents de problèmes.

XMLApiHelper définit une conversion implicite entre les types Scala de noeud XML et la classe LiftResponse. RestHelper définit un mécanisme qui retournera XML ou JSON au client, en fonction de ce qu'ils ont demandé. RestHelper liens dans le processus de répartition à un niveau inférieur à XMLApiHelper, de sorte que l'implicite sur XMLApiHelper n'est jamais réellement appelé.

Si vous souhaitez uniquement renvoyer XML à une méthode HTTP, utilisez XMLApiHelper. Si vous souhaitez avoir la possibilité de renvoyer XML ou JSON en fonction de la méthode HTTP, utilisez le RestHelper.

+0

Ah merci, ça jette un peu plus de lumière sur tout :) – raichoo

Questions connexes