2011-05-15 43 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中無法解決的想法。