We've been using that approach in production for several years (not in Restlet
obviously, but in a REST-style service). If you have clients on different
development cycles, and/or customer-installed clients that may or may not
choose to upgrade -- and we have both -- this approach gives some breathing
room. I don't know that this makes it a canonically Good Idea. I suspect Jakob
Nielsen would hate it.
I think, if one wants to use this approach, any versioned base path needs to
refer to a functionally and conceptually distinct, published revision of the
service's resource space, not necessarily a specific client or server version.
Taking it to an extreme, if one did something like
/service/{clientversion}/{id} where the {clientversion} could be effectively
any valid client release version -- well, wouldn't this would be kind of
ambiguous: is GET /service/1.0.1/rob the same thing as GET
/service/1.0.24b1/rob? How do I know? If I GET one and PUT the other, is it the
same thing or a different thing? Etc.
The best reason to revise such a versioned base path, I feel, would be because
the v1 resource hierarchy needs changing -- maybe you really need
/service/v2/{account}/{username} instead of /service/v1/{username}. If
/service/v1/rob and /service/v2/rob are just somehow representationally
incompatible, before I changed the base path, I'd have to wonder if there isn't
first something that can be done to make both client and server more resilient
about the kinds of representation data they are willing to transfer.
- Rob
----- Original Message -----
From: "Stanczak Group" <[EMAIL PROTECTED]>
To: [email protected]
Sent: Thursday, August 30, 2007 1:12:59 PM (GMT-0500) America/New_York
Subject: Using version URI?
I saw in some examples the code used a URI such as /users/v1/{id}/user.
I'm guessing that was to allowing support for backwards compatibility
with older clients that you my have made. This seems like a very good
idea, anyone have input on this? Like or dislike this method?
--
Justin Stanczak
Stanczak Group
812-735-3600
"All that is necessary for the triumph of evil is that good men do nothing."
Edmund Burke