I suggest you ...

provide data back in XML (non-XHTML) format

Frameworks like Ruby on Rails have built-in functionality for consuming RESTful web services, but expect data to be returned in a more typical XML or JSON payload.

44 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    anonymousanonymous shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    10 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      Submitting...
      • Dylan WDylan W commented  ·   ·  Flag as inappropriate

        If I had to choose, JSON, since that would make AJAX apps that much easier to use. You can pry XML from my cold dead fingers, but JSON is going to get the data in the hands of more people.

      • Matt HarrisMatt Harris commented  ·   ·  Flag as inappropriate

        Tony, to answer your question... If you forced me to choose between XML and JSON, I guess I would choose JSON (it's simpler, more lightweight, maps well to existing programming structures, and all the cool kids are doing it). That said, Rails (and probably most other frameworks) will just as easily use either, and if not, it's pretty trivial to convert from JSON to XML and back. I'm sure others are more passionate about JSON being better or XML being better though...

      • Dylan WDylan W commented  ·   ·  Flag as inappropriate

        JSON is fine too, but either XML or JSON will just deliver the content and allow for far easier parsing than the HTML being used.

      • MarcMarc commented  ·   ·  Flag as inappropriate

        I would give all my votes to this if I could. Just talked with Tony C, thanks for the link. ;-)

        This request is a must I would say and would love to see this. Shouldn't be too hard to write out json and xml if you are already doing xhtml. Never worked with ruby, all c# and java here so this would be a plus.

      • Lucian DiPesoLucian DiPeso commented  ·   ·  Flag as inappropriate

        I agree. If SWS could provide data back in a variety of formats, e.g., XHTML, XML, JSON, etc., that would be great. We currently use SWS in our PHP web apps, which has parsers for XML and JSON, but at this point I'm having to scrape out the needed data using regex, which is prone to more errors or issues than using prebuilt XML/JSON parsers.

        Perhaps SWS could look at the "Accept" request header or the file extension to see how data should be returned.

      • Matt HarrisMatt Harris commented  ·   ·  Flag as inappropriate

        In regards to the benefits of returning an XML payload:

        I can only speak to Rails specifically because that's what I develop in... but I believe it's a similar case for other Rails-type frameworks.

        Rails uses a database abstraction class called "ActiveRecord" that makes interacting with the DB insanely simple and saves you from ever having to write a bit of SQL (it automatically maps DB records to Ruby objects). As a companion, Rails also ships with an abstraction class for mapping RESTful resources as models called "ActiveResource." The cool thing about ActiveResource is that you can consume a RESTful resource with literally three lines of code:

        class Person < ActiveResource::Base
        self.site = "http://api.people.com:3000/";
        end

        Of course, for more complex setups, it takes a wee bit more (e.g., specifying certificates for authentication, custom element names, different "primary key", etc.). But then ActiveResource exposes all the CRUD methods just like ActiveRecord... for example `bob = Person.find(1)` will pull Person with ID # 1 from the web service and make all of its attributes accessible on the `bob` object. More about all this is available in the Rails API about ActiveResource (http://apidock.com/rails/ActiveResource/Base).

        The BIG GOTCHA with ActiveResource is that it currently can only handle one of two format types: XML and JSON. Theoretically you can also write your own custom format to consume other things, but that doesn't look simple. If I'm going to go to that trouble, I might as well use some of the other tools used for parsing your XHTML directly.

        Since you're using Microformats, there are tools out there to parse those outside of the scope of ActiveResource as well. For instance, a ruby gem called mofo exists and looks pretty easy to use but it only supports certain pre-defined microformats (hCard, hCalendar, hReview, hEntry, hResume, XOXO, Geo, Adr, and XFN). But I don't think SWS uses standard Microformats (right?) so, again, it requires manually parsing the data.

        From one perspective, I can imagine someone saying "Stop being a lazy Rails programmer and parse the data just like everyone else!" but the whole idea behind Rails is to be lazy when you *can* be lazy... spend less time writing code to parse data and more time working on things that matter to users.

        This, in a nutshell, is why I would really love to have the SWS provide an XML payload.

        Matt

      • AlinAlin commented  ·   ·  Flag as inappropriate

        We're looking to be able to consume Web Services from mainframe processes, and the parser that we have available to us allows us to retrieve specific elements from xml strings, whereas with xhtml we have to "get next element" until we have them all, and then process them internally. So it's a lot more coding - and it's very much slower.

        Currently, we're not necessarily looking at consuming Student WS data - we're more interested in Financials, but my understanding is that if the AIS folks solve this for one WS system, then it'll be solved for all.

        Thanks

        Alin

      Feedback and Knowledge Base