Forum: Ruby on Rails API versioning strategy

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Zac Z. (Guest)
on 2008-12-15 17:48
I am developing a service to be accessed within a browser and via API. I
am not sure what the best practise for API versioning is.

AdWords API split into major version by URI mutilation: /v1, /v2 etc.

My current thoughts are:

Website accessible from www.myservice.com
API accessible from v1.myserviceapi.com This will be a separate instance
with its own mongrels/mod_rails.

Major updates will go under a incremented subdomain,
v2.myserviceapi.com. This will happen infrequently. Perhaps once a year.

Minor updates will be a normal capistrano deploy.

Can anyone please comment on the above? It's much appreciated.

Zac
Michael G. (Guest)
on 2008-12-20 13:52
(Received via mailing list)
From what I can tell, your strategy of v1.example.com and
v2.example.com work well.  Another strategy is api.example.com/v1/...
and api.example.com/v2/...

I personally prefer the latter, but it means everything listening on
api.example.com must speak both protocols, or you have to have a fancy
redirector that inspects packets.

--Michael

On Mon, Dec 15, 2008 at 3:48 PM, Zac Z.
rp8 -. (Guest)
on 2008-12-20 20:43
For service apis with end point on the network, it's usually preferred
to keep the end point stable as you don't want to your client apps to
change often when you start versioning. If your new version breaks
compatibility significantly, then it's ok to have a new end point but
otherwise the versioning might be better handled at the message level.
ie, your message may have a header with v=v1, etc.

Regards,

rp8
=======================
http://lun.competo.com/

Zac Z. wrote:
> I am developing a service to be accessed within a browser and via API. I
> am not sure what the best practise for API versioning is.
>
> AdWords API split into major version by URI mutilation: /v1, /v2 etc.
>
> My current thoughts are:
>
> Website accessible from www.myservice.com
> API accessible from v1.myserviceapi.com This will be a separate instance
> with its own mongrels/mod_rails.
>
> Major updates will go under a incremented subdomain,
> v2.myserviceapi.com. This will happen infrequently. Perhaps once a year.
>
> Minor updates will be a normal capistrano deploy.
>
> Can anyone please comment on the above? It's much appreciated.
>
> Zac
This topic is locked and can not be replied to.