> i don't reject it, but it makes it necessary to issue additional GET 
> requests for each single entry. if you know that all you ever want are 
> the linked alternate variants, then it would be much more effective to 
> simply GET those in a feed (if there was one and you could find it).

With HTTP pipelining those multiple GETs shouldn't have that much of a negative 
impact, although I'll admit that in practice pipelining does have potential 
problems.

But even without pipelining, after the first feed retrieval, I would still 
expect those multiple GETs to be more effecient on subsequent updates. Two 
small GETs to retrieve one new feed entry would seem more efficient than one 
giant GET of a 20 entry feed when you only want the latest entry (unless you're 
also supporting RFC3229+feed?)

I guess this does depend to a some extent on the nature of your data, the 
frequency of updates, and the kind of clients you expect to have. Either way, 
though, I think you may be optimizing prematurely.

> i am interested in producing feeds that are useful to feed-consuming 
> clients. human-oriented feed clients prefer HTML, whereas other types of 
> clients might prefer XML or RDF or something else.

I still think you are going about it the wrong way. If the content-type for 
Atom doesn't sufficiently distinguish between the types of feed you want to 
serve for HTTP content negotiation to work, it seems to me you should be 
looking at ways to extend the content-type (like the type parameter that was 
proposed to distinguish between Atom entry documents and Atom feed documents). 
Inventing a new form of content negotiation that requires parsing links from 
the top of an Atom feed is just twisted.

But the real problem may just be an inappropriate use of Atom as a general 
purpose container format. If you have a client that prefers content as RDF, why 
not give them a true RDF feed? Why RDF embedded in Atom? That kind of misses 
the point of RDF. Even worse, if a client prefers JSON, do you really think it 
makes sense to serve them that JSON as base-64 encoded blobs inside an XML 
container? I can assure you that nobody is going to thank you for that option.

If you served RDF clients a real RDF feed, and JSON clients a real JSON format, 
then you could be using standard HTTP content negotiation - at least for most 
cases. If you wanted to provide an "HTML friendly" feed that was separate from 
the one with raw XML embedded, you'd still need a way to differentiate between 
the two, but at that point I would think it not worth the complication. I'd 
just make your feed content the raw XML, include a short summary, and then an 
alternate link to a more detailed HTML page if really necessary.

                                          

Reply via email to