On 6/2/09 10:47, Ian Boston wrote:
Sorry, yes you are right, re-reading the spec more carefully.

Does that change the call to getPeople() or just the underlying implementation.
Should just be the underlying implementation. All the necessary information is in the method signature.
I would rather not change the getPerson() signature when correct use of getPeople() even with a collection of 1 has the required functionality.

I think however what is confusing is the layered functionality of the getPeople query, and the overlaid meaning of /people/@me/@self to mean the object in on instance and the existence of a friend in another.

To my mind /people/@me/@friends/{friendGuid} which returns the friend if the fiend is a friend, and a blank or 404 if not. But that is a spec issue.
The problem is, the response from getPeople will not suffice (I hoped it would) as it returns a RestfulCollection: <response><entry><person></person></entry></response> while getPerson() just returns a Person: <response><person></person></response>. While I have my own personal feelings on the spec's format, we need to honor the difference in response between getPerson requests (/people/@me/@self and /people/@me/@friends/{friendGuid}) and getPeople requests (/people/@me/@friends...).
Is it worth bringing up on the spec list or are the URL semantics Ok?
There are problems with the semantics, but we can simply deal with this specific problem by passing CollectionOptions to getPerson() and have the implementation deal with it. Any other solution requires changing the spec or adding more complexity to PersonHandler.

If you think it's worth bringing up on the spec list for a longer-term resolution, then I'm happy to.

Still might be worth renaming CollectionOptions.
Ian
Ben

Reply via email to