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

Re: PaceEntryQuery




Ezra Cooper wrote:



A couple of questions and suggestions on PaceEntryQuery:


Greg, why does it say that range specifiers apply only to Atom Entry collections? I think we need SOME subset-fetching mechanism for other Atom collections, don't we?


I wrote the range section. I agree that we need such a mechanism for other collections. I thought I'd try to solve it for entries first, then see what we can apply elsewhere.


On allowing multiple ranges in one request: Is it necessary? Isn't it just as easy to make multiple requests? Can we simplify the protocol by dropping that?

Hmm. If we dropped the multiple range section, it would make the spec
simpler (by a little), but writing a client that retrieved multiple ranges would be harder. Does it impose a large burden on server implementors?



Also, I would prefer to define ranges according to the value of the field, rather than by ordinal ranges.

It's not a range request in that case. I can see the value in working from a date, but a date range doesn't help you if you want 20 entries.

Consider what happens if Alice asks for items 0-9, then Bob inserts a new item 0, then Alice asks for items 10-19. Alice will fetch an item twice.

Alice also gets the total number of entries with each range request. Ah... the ranges-specifier outlined in the Pace doesn't talk about behavior for If-Range or Content-Range. I'll update it.

If after the first operation, Alice sees that the oldest item in that set was dated 2004-09-03T12:37:42Z, she can then make a request asking for the 10 items immediately prior to that date. If Bob adds a new item, its date will be outside that range, and won't affect the results.

Yes, but if Bob edits an old item, what happens? Remember, the only
required field is atom:updated. I don't think there's an approach we can take that will ensure the client always has an accurate representation of the server's state.


Hmm. I'm curious about the use case here. Is this aiming for sync
behavior? Existing APIs indicate that the most important thing to
provide is the last N things edited. Don't need a date for that. Where
does the rest come in?


I'll devise a syntax for a range over date values. Would it be reasonable to drop support for ordinal ranges?

Seems like you are looking for a query. N items since DATE is not a range. A range would be

startDate - endDate (how many entries is this??)

If you want to limit the results returned, you have a search query. There's no Partial-Partial-Content.

Robert Sayre