[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Listing Collections & Forbidden Assumptions



Daniel Jalkut wrote:


First a brief intro: I'm Daniel Jalkut and just became responsible for the Mac weblog editing software, MarsEdit. In my new role I've had a crash course in publishing protocols, but am probably still a bit naive. Be gentle :)

I've just read through the APP draft for March 2007 and in general I'm really happy with what I'm learning about APP. Just one thing stood out as a point of concern.

>From Section 10. Listing Collections:

Clients MUST NOT assume that an Atom Entry returned in the Feed is a
full representation of a Member Entry Resource and SHOULD perform a GET
on the URI of the Member Entry before editing.

The behavior of MarsEdit, which I think is typical of many remote editors, is to maintain a working "mirror" of the last N posts on the server. These are full representations of the post, an assumption that is probably inspired by the fact that "getRecentPosts" returns the full content of items.

So what concerns me with APP is that clients will necessarily "double-fetch" all post data in order to comply with the standard. The problem is exacerbated by the fact that MarsEdit and other editors show a "complete preview" of items that the user may wish to edit, so the full representation may be desired even before an actual edit of an item is imminent. Again this luxury is probably inspired by the verboseness of the "getRecentPosts" method.

So to emulate the "complete sync" that I currently get with MetaWeblog and Blogger, I'll have to:

1. Download the complete collection feed.
2. Iterate and download the complete member resource for each item in the collection.

It seems that the situation would be helped by having some way to either download a light-weight index of the collection feed's items (I hope I didn't miss something obvious here), or else to have a clue from the server that in fact the feed's items are full representations.

Given my interpretation of the draft requirement, I think one of two things will happen. Either clients will ignore the standard and assume full representation feeds, or else clients will habitually double-strain the server in order to maintain a reliably full representation copy of the content.

I did search the archives for an existing topic on this subject, but didn't find anything. Hopefully I didn't miss it.


I know that this topic has been raised before.  I believe there was a discussion centering around the use of ETags and the possibility of inserting an "etag" element or attribute for each entry in the feed -- which would allow tools to at least do a quick GET rather than a full GET for each entry before editing it.

If you know that MarsEdit originally posted the entry, you may have shortcuts as well... especially if the original server POST responses return ETags.


--
AbstractioneerJohn Panzer
System Architect
http://abstractioneer.org