So I tried setting the resultFormat to "object" for a service that
returns a fairly deep XML structure. I found that it did a pretty good
job of mapping the text nodes to the correct types (Boolean, String
and Number); it didn't map "2006-11-17" to a Date, but hey, you can't
be all things to all people.

Anybody else out there have experience with resultFormat="object"? Is
there any documentation that specifically describes how the object
graph is put together and what the text-node-to-object rules are? I
suppose I could go look at the source code, but figured I might as
well ask around first.

Thanks,
Chris

--- In flexcoders@yahoogroups.com, "Chris Luebcke" <[EMAIL PROTECTED]> wrote:
>
> Hi Ian, I'm using XML over HTTPService in my current app and may be
> able to help with some of this. Responses inline below.
> 
> --- In flexcoders@yahoogroups.com, Ian Shafer <ian@> wrote:
> > ...regarding using HTTPService:
> > 
> > * Should I be using it? I'm choosing to use HTTPService because I
don't
> > want to pay for FDS and it (HTTPService) *seems* simple so that if
there
> > are problems, I could easily be able to fix them (as opposed to using
> > FDS and Adobe's proprietary encoding). Also, XML over HTTP is
simple and
> > always works. Hooking up remote objects just seems like a pain.
> 
> The answer to that question ultimately comes down to your specific
> project needs, of course. I'm not using FDS (for the usual reasons),
> and there doesn't appear to be an open-source (or otherwise really
> cheap) alternative to using AMF3 to communicate to a Java backend. So
> that really leaves some flavor of XML over HTTP as the raw message
> language and protocol. We deliberated between SOAP, REST and homegrown
> XML message protocols, and ultimately settled on homegrown for a
> variety of reasons I won't bore you with. Again, it really depends on
> your specific needs, but so far our solution is shaping up very nicely.
> 
> > * What is the best resultFormat to use. As far as I can tell,
there are
> > three: object, e4x, and xml. The xml format seems obsolete since
we now
> > have e4x. Is there any reason to use xml? I get e4x (pretty sweet, I
> > think this is a *great* language feature). The only drawback I've
found
> > so far is the datatype of e4x values. They all seem to be Strings.
I get
> > this, but I wonder if there's an easy way to say "all @quantity fields
> > are numeric" so it'll sort nice in a DataGrid. object seems cool, but
> > I'm not 100% clear how it works.
> 
> Me neither, frankly. I might consider trying it, though, given that
> there is apparently some basic type casting done when you use this
> format, according to the dev guide:
> 
> "By default, the resultFormat property value of HTTPService components
> and WebService component operations is object, and the data that is
> returned is represented as a simple tree of ActionScript objects. Flex
> interprets the XML data that a web service or HTTP service returns to
> appropriately represent base types, such as String, Number, Boolean,
> and Date. To work with strongly typed objects, you must populate those
> objects using the object tree that Flex creates."
> 
> > Can I tell HTTPService which class to
> > bind the objects to? I don't use Flex Builder (again, I don't like to
> > pay for software, and I don't have the money), so it's tough to
> > introspect the objects at runtime (although I did see something about
> > command line debugging, I'll have to look into that).
> 
> I believe this creates a new graph of objects with dynamically created
> properties. I don't believe there's any configurable mechanism for
> mapping XML to particular object classes or types; I think if you need
>  mapping different from what resultFormat="object" gives you, you need
> to roll your own. Not positive, though.
>  
> > * I want to call (HTTPService.send()) my service with different query
> > parameters. What's the best way to do this? Currently, I'm creating a
> > new HTTPService in AS and generating the URL every time it is called.
> > This doesn't seem right to me.
> 
> Nah, it ain't :) Create a single HTTPService and modify its request
> property; this property takes "an object of name/value pairs", which
> just means that it'll treat every property name on the object as a
> parameter name and will call toString() on the property value to get
> the parameter value.
> 
> You may want to look at Cairngorm's implementation of the Service
> Locator pattern, which provides an application-wide singleton that
> wraps you services, allowing central definition of services along with
> global access to them. I like the pattern, your mileage may vary.
> 
> > * Should I use a service-config.xml file? I haven't been able to find
> > good documentation on this?
> 
> Only applies to FDS, I'm pretty sure.
>


Reply via email to