[rest-practices] Atom as a generic container? [was Re: Media types]

Bryan Kearney bkearney at redhat.com
Fri Apr 16 12:06:16 UTC 2010


On 04/16/2010 05:22 AM, Mark McLoughlin wrote:
> On Thu, 2010-04-15 at 08:44 -0400, Bill Burke wrote:
>
>>   >        application/vnd.rht.rhevm.vm+xml;version=1
>>   >        application/vnd.rht.rhevm.host+xml;version=1
>>   >        application/vnd.rht.rhevm.collection.vm+xml;version=1
>>   >        application/vnd.rht.rhevm.collection.host+xml;version=1
>>   >
>>
>> IMO, the above two are ok.  Atom does it!
>
> Okay, you're going to need to help me out here :-)
>
> We're talking about the format of the document returned by e.g.
> 'GET /vms'. At the moment, we're just doing:
>
>    <collection>
>      <vm>
>      </vm>
>      ...
>    </collection>


I think an xml structure like this will make it harder for any 
auto-clients such as ruby. I would suggest to get <vms/> as the wrapper.

>
> You're suggesting using Atom as a generic container format, right?
>
> Eoghan suggested something similar here:
>
>    https://fedorahosted.org/pipermail/rhevm-api/2010-April/000025.html
>
>> application/atom+xml
>
> This would just be e.g.:
>
>    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>    <atom:feed xmlns:atom="http://www.w3.org/2005/Atom">
>      <atom:title>VMs feed</atom:title>
>      <atom:updated>2010-04-16T09:47:55.288+01:00</atom:updated>
>      <atom:id>http://{host}/vms</atom:id>
>      <atom:author>
>        <atom:name>RHEV-M</atom:name>
>      </atom:author>
>      <atom:entry>
>        <atom:title>vm2</atom:title>
>        <atom:content>
>          <vm>
>            <link rel="self" href="http://{host}/vms/3"/>
>            <id>3</id>
>            <name>vm3</name>
>            <actions>
>              ...
>            </actions>
>          </vm>
>        </atom:content>
>
> That's simple enough:
>
>    http://git.fedoraproject.org/git/?p=rhevm-api.git;a=commitdiff;h=3fff835a
>
> But now, what about supporting clients who prefer json or yaml? Does
> "application/atom+json" make much sense, I wonder?
>
>> application/atomcat+xml
>
> We'd use this to describe e.g. 'vm' and 'host' categories?

So... one of he items I heard about why REST and not SOAP is that the 
SOAP envelope is terrible. What I see here is starting to look like such 
an envelope. Will you be supporting "natrual" xml and json as well?


--bk




More information about the rest-practices mailing list