On Thu, Oct 8, 2009 at 7:19 PM, Alex Black <[email protected]> wrote:

>
> Hi David, thanks for the response.
>
> Thanks, that gets it compiling, and I think I see what it does.
>
> Is the right way to proceed if I want to return JSON (rather than
> XML)?
>

Roll your own :-(

You can also use the excellent lift-json libraries to parse the XML and
return JSON.


>
> - Alex
>
> On Oct 8, 2:17 pm, David Pollak <[email protected]> wrote:
> > In order to use the XMLApiHelper trait, you must define an outer-most XML
> > Elem that will wrap the response.
> > For example:
> >
> > def createTag(in: NodeSeq): Elem = <foo_co_rest>{in}</foo_co_rest>
> >
> > Now... if your stuff already does the wrapping in the outer-most Elem,
> you
> > can do:
> >
> > def createTag(in: NodeSeq): Elem = in.flatMap{case e: Elem => List(e)
> case _
> > => Nil}.firstOption getOrElse <blank/>
> >
> >
> >
> > On Thu, Oct 8, 2009 at 10:36 AM, Alex Black <[email protected]> wrote:
> >
> > > I'm getting started with Scala and Lift, implementing a simple REST
> > > service.  I've extended XMLApiHelper, following examples in "Exploring
> > > Lift", but I'm getting a compile error I'm not sure about, any
> > > suggestions?
> >
> > > error:
> >
> > > class RestAPI needs to be abstract, since method createTag in trait
> > > XMLApiHelper of type (scala.xml.NodeSeq)scala.xml.Elem is not defined
> > > RestAPI.scala   /poc/src/main/scala/com/somecompany/api Unknown Scala
> > > Problem
> >
> > > So its telling me I have to implement createTag... but, I don't know
> > > how to :)  Also, the examples i've seen don't seem to implement it,
> > > making me think I'm doing something wrong.
> >
> > > package com.somecompany.api
> >
> > > import _root_.net.liftweb.util._
> > > import _root_.net.liftweb.http._
> > > import Helpers._
> >
> > > import net.liftweb.http.rest.XMLApiHelper
> >
> > > class RestAPI  extends XMLApiHelper {
> > >  def dispatch: LiftRules.DispatchPF = {
> >
> > >    case Req(List("api", "camera", cameraId), "", DeleteRequest) =>
> > >        () => deleteCamera(cameraId)
> >
> > >        // Invalid API request - route to our error handler
> > >    case Req(List("api", _), "", _) => failure _
> > >        }
> >
> > >  def failure : LiftResponse = BadResponse()
> >
> > >  def deleteCamera(cameraId : String) : LiftResponse = {
> > >        NoContentResponse()
> >
> > >  }
> >
> > > }
> >
> > > Thanks!
> >
> > > - Alex
> >
> > --
> > Lift, the simply functional web frameworkhttp://liftweb.net
> > Beginning Scalahttp://www.apress.com/book/view/1430219890
> > Follow me:http://twitter.com/dpp
> > Surf the harmonics
> >
>


-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to