Re: API Versions

Bill Moseley <[email protected]> Fri, 25 Jul 2008 11:58:37 -0700
Newsgroups gmane.text.xml.rpc.specification
Message-ID <[email protected]>
On Fri, Jul 25, 2008 at 06:16:45PM +0000, [email protected] wrote:
> >    http://localhost/rpc/1.23
> >    http://localhost/rpc?version=1.23
> >    http://localhost/rpc-1.23
> 
> The URL should identify the server, so if you think of it as having
> multiple servers, this is reasonable, but it doesn't really sound to
> me like you're describing that.

Right, not separate servers.  But, separate behavior based on the
version.


> >    foo.get.1.23
> 
> This is my favorite.  Also, if it really is a whole separate coherent
> API as opposed to new versions of particular methods, you could do:
> 
>      foo.1.23.get
> 
> One nice thing about separate method names is that system.listMethods
> shows you what versions are available.

That's interesting -- I was thinking that was the least likely
approach.  Over time, the foo.get method would mature and in that
process return new data (and possibly require additional input
parameters).  So, in the future one would still call the "foo.get"
method but it would be different from the old method.  Old could could
continue to use the old "foo.get" (for a limited time) but would have
to specify an older version number.

But, including a version number in individual methods is an
interesting (and reasonably simple to implement) approach.

-- 
Bill Moseley
[email protected]
Sent from my iMutt


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/xml-rpc/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/xml-rpc/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[email protected] 
    mailto:[email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/