Hmmm. Looks like I'll have to learn more about this WADL. I was approaching it from the XSLT side. Should've thought about the web service side.
Thanks! (Being a one man shop and very busy, I often end up reinventing the wheel. It's a drag. I should get out more.) Chas. Tim Perrett wrote: > Chas, > > What your talking about is object serilization - the helpers we both > currently have, and the ones I plan to rebuild do not care about the > output XML - it's more abstract than that (collections of implicit > conversions etc) > > IMO - what your talking about is object serilization. There are a > bunch of frameworks out which do this very effectivly (for better or > worse, soap is an example of this), and personally, I'm not a fan of > it: for me, REST services should be a lightweight DSL -if you then > want automated tooling, just use WADL. > > Cheers, Tim > > Sent from my iPhone > > On 1 Feb 2009, at 05:47, "Charles F. Munat" <c...@munat.com> wrote: > >> Tim, >> >> I don't know much about the XMLApiHelper, but if you're headed down >> this >> route, there is an alternative syntax that you might want to consider. >> >> One of the things I might want to do with XML output from a REST >> server, >> for example, is create an interface to it using HTML. The easiest way >> would be by using XSLT (or Scala) to convert the XML to XHTML, e.g. to >> convert a collection of Users into a table. >> >> If each object/class has it's own element name, that makes things >> difficult. In that instance, I would program my REST server to output >> users thus: >> >> <collection className="User"> >> <object className="User"> >> <attribute name="id" format="integer">666</attribute> >> <attribute name="nameFirst" format="name">Lou</attribute> >> <attribute name="nameLast" format="surname">Cypher</attribute> >> <collection className="PhoneNumber"> >> <object className="PhoneNumber"> >> <attribute name="region">US</attribute> >> <attribute name="phoneType">mobile</attribute> >> <attribute name="areaCode" format="areaCode">666</attribute> >> <attribute name="exchange" format="exchange">666</attribute> >> <attribute name="number" format="phone">6666</attribute> >> <attribute name="extension" format="ext">6666</attribute> >> </object> >> <object className="PhoneNumber"/> >> </collection> >> </object> >> <object className="User"/> >> <object className="User"/> >> </collection> >> >> This allows me to write one script that converts all collections to >> tables, or alternatively to nested lists. It's more verbose (though >> some >> duplication could be eliminated), but it provides me with the >> information I need to do the conversion and format the results. >> >> Just a thought... >> >> Chas. >> >> Tim Perrett wrote: >>> Guys, >>> >>> Just doing some work with the XMLApiHelper and im finding some things >>> that can be improved. For instance, the trait provides createTag >>> which >>> you then have to override like so: >>> >>> def createTag(in: NodeSeq) = <api>{in}</api> >>> >>> IMO, it seems that this isnt ideal as if you were returning a list of >>> users, your xml would be: >>> >>> <api> >>> <user>....</user> >>> <user>....</user> >>> </api> >>> >>> It would be better to have a configurable root node, so its a more >>> logical semantic: >>> >>> <users> >>> <user>....</user> >>> <user>....</user> >>> </users> >>> >>> I've been playing around with the best way to do it and by changing >>> the implicits and the xml build methods I now have it so that you can >>> do: >>> >>> def listAllUsers = { >>> ... >>> ("users", listOfUsers) >>> } >>> >>> This appears to be the best way to do it, otherwise things start >>> getting messy? >>> >>> Whilst I can make these changes code wise, im very aware that ESME >>> uses this helper a lot and this would mean some significant breaking >>> changes in the api construction, both for ESME, and no doubt other >>> projects. IMHO, the change is worth the hassle as it will make >>> services up of more logically formed xml. >>> >>> What are people's thoughts? >>> >>> 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 -~----------~----~----~----~------~----~------~--~---