Fabulous On Mon, May 18, 2009 at 4:27 PM, Timothy Perrett <timo...@getintheloop.eu>wrote:
> > It just falls through to the default request handling which reads the > whole stream in and should be accessible via req.body (where req is > the instance val) - see it here: http://is.gd/B6VT > > Cheers, Tim > > On May 18, 11:00 pm, Derek Chen-Becker <dchenbec...@gmail.com> wrote: > > BTW, what happens if the mime type is incorrect? Does the Req.xml method > > fail in a graceful way, or do you get exceptions? > > > > > > > > On Mon, May 18, 2009 at 2:51 PM, glenn <gl...@exmbly.com> wrote: > > > > > Deriek, > > > > > Appreciate your response. What I did was change the case to just > > > > > case Req("api" :: "company" :: Nil, "", PutRequest)=> () => > > > saveCompany > > > > > and in saveCompany I just extracted the Req object from S.request > > > open_!. > > > > > As long as the body of my request is of the right mime type ("text/ > > > xml") > > > everything works great. > > > > > Glenn... > > > > > On May 18, 1:36 pm, Derek Chen-Becker <dchenbec...@gmail.com> wrote: > > > > The URL is defined by the match list in the Req object. In your case, > > > you're > > > > defining your match as : > > > > > > case r @ Req("api" :: "company" :: Nil, "", PutRequest)=> () => > > > > addCompany(r) > > > > > > Your List is ("api" :: "company" :: Nil), So your URL would need to > look > > > > like > > > > > >http://.../api/company > > > > > > Derek > > > > > > On Sun, May 17, 2009 at 4:02 PM, glenn <gl...@exmbly.com> wrote: > > > > > > > Tim, > > > > > > > If I have a PUT dispatch case like so: > > > > > > > case r @ Req("api" :: "company" :: Nil, "", PutRequest)=> () => > > > > > addCompany(r) > > > > > > > and the handler is looking for something in r.xml like this: > > > > > > > req.xml match { > > > > > case Full(<company>{parameters @ _*}</company>) => { > > > > > for(parameter <- parameters){parameter match{ > > > > > case <companyName>{name}</companyName> => > > > company.name > > > > > (name.text) > > > > > case <line1>{line1}</line1> => > > > company.line1(line1.text) > > > > > case <line2>{line2}</line2> => > > > company.line1(line2.text) > > > > > case <city>{city}</city> => > company.city(city.text) > > > > > case <state>{state}</state> => > > > company.state(state.text) > > > > > case <postalCode>{postalCode}</postalCode> => > > > > > company.postalCode(postalCode.text) > > > > > case _ => > > > > > } > > > > > } > > > > > > > what would my PUT URL actually look like? The lift book shows > > > > > > >http://www.pocketchangeapp.com/api/expense-PUT - addEntry(request) > + > > > > > XML Body as an example, but I don't really understand that in the > > > > > context of third-party > > > > > app sending the request. > > > > > > > On May 17, 2:16 pm, Timothy Perrett <timo...@getintheloop.eu> > wrote: > > > > > > > but I haven't figured out how to PUT documents from > > > > > > > a non-lift resource into my lift app, since that > > > > > > > requires that you can somehow access lift's Req object via a > URL > > > > > > > > Hmm - im afraid your just plain wrong here... it needs nothing of > the > > > > > > sort. I have lift applications that are 100% back-end process, > and > > > > > > have no UI, or rather, the UI is an objective-c cocoa desktop > > > > > > application. No magic included. Lift is extreamly good at > building > > > > > > REST services as it has a very flexible HTTP handling mechanism. > I do > > > > > > wonder though, if you already have a GET dispatch, what you > cannot > > > > > > figure out how to do PUT? (look at net.liftweb.http.PutRequest > and > > > how > > > > > > its used in Req pattern match) > > > > > > > > @barry: You can do what you want without any issues. Lift is > > > > > > implemented as a filter so can co-habbit with other servlets etc. > > > Lets > > > > > > assume that you implement the lift element under /badger - > configure > > > > > > your web.xml correctly then only /badger/* requests get passed to > > > > > > lift. Technically speaking there is no difference in serving > XHTML > > > and > > > > > > XML... its all XML at the end of the day; its just that your > browser > > > > > > can make sense of the micro-format ;-) > > > > > > > > Whatever you have your persistance teir configured with, you can > just > > > > > > layer lift on top for a REST service - it really is that easy. > > > > > > > > Cheers, Tim > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---