2011-05-15 62 views
1

我们正在开发一个具有iPhone客户端和Rails服务器的应用程序。我们发布了第一个版本,现在开始使用1.1版本。 我们想知道是否有任何工具(外部的或hostingrails提供的)来满足这两个基本要求: - Rails应用程序的开发/生产版本 - 应用程序的同时实时版本(版本化的API),例如以保持支持旧版本的客户端应用程序iPhone。Rails应用服务器的生命周期管理

我们现在考虑的第一种方法是复制每个我们想要的API版本的应用程序,例如,它们中的每一个都被特定的URL引用:myapp.com/v1myapp.com/v2。 .. 这整个堆栈本身将被复制,以便拥有一个live/production版本和一个开发版本。一旦测试,开发版本将与生产版本切换。

您如何看待这种方法?是否有任何工具可以管理应用程序的生命周期? Rails是否具有内置功能来促进此功能?

感谢

回答

2

最简单的事情也只是保持你的API向后兼容,从而不需要保持API的两个版本,如果你必须打破向后兼容的方式改进它,贬低旧的API并给它一个真正的终止日期,这样你就不会无限支持它。

如果您绝对必须走这条路,请首先阅读Fowler关于该主题的博客文章(http://martinfowler.com/bliki/TolerantReader.html),然后查看命名空间API路由。在Rails中,你可以做到这一点使用命名空间的路线和控制器,所以你可能有你在/application/endpoint原来的API,并在/application/v2/endpoint新版本(我假设你不能轻易改变你的端点老客户)

我我没有意识到任何明确声称解决你想要解决的问题的工具,但我认为这与开发人员努力工作以解决问题的方式并不相同,而不是他们在Rails中无法解决的想法。