1

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

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

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

谢谢

4

2 回答 2

2

最简单的事情就是保持你的 API 向后兼容,这样就不需要维护 API 的两个版本,如果你必须以破坏向后兼容性的方式发展它,弃用旧的 API 并给它一个真正的终止日期,这样您就不会无限期地支持它。

如果您绝对必须走这条路,请先阅读 Fowler 关于该主题的博客文章 (http://martinfowler.com/bliki/TolerantReader.html),然后查看 API 路由的命名空间。在 Rails 中,您可以使用命名空间路由和控制器来完成此操作,因此您可能拥有原始 api/application/endpoint和新版本/application/v2/endpoint(我假设您无法轻松更改旧客户端的端点)

我不知道有任何工具明确声称可以解决您说要解决的问题,但我认为这与开发人员努力工作而不需要它们有关,而不是认为它们无法解决导轨。

于 2011-05-15T18:00:26.487 回答
0

您是否考虑过使用子域?:http ://railscasts.com/episodes/221-subdomains-in-rails-3

于 2011-05-15T18:01:50.533 回答