2012-04-07 66 views
2

我正在研究在我的Ruby on Rails應用程序旁邊構建平臺API的最佳方法。我碰到這個question,其中引用ticketee,爲Rails 3 in Action編寫的示例應用程序。我正在研究他們構建的API,並且我注意到他們沒有在Ruby on Rails堆棧中使用「respond_to」或任何類型的JSON生成函數來支持其API。他們實際上使用Ruby on Rails之外的Sinatra構建了他們的API。這是最佳做法嗎?這不需要本質上維護兩個代碼庫嗎?也許有一些我缺少的鏈接?爲什麼Rails 3 in Action書中的ticketee應用使用Sinatra?

作爲後續問題,如果這是最佳做法,並且不需要開發人員維護兩個代碼庫,那麼使用Sinatra代替「響應_to」方法或Rails內部的其他類型JSON生成的優點是什麼控制器?

回答

4

我們在第13章中使用respond_to作爲API的第一個版本,但爲了演示如何在第18章中安裝Rack應用程序,我們爲此創建了一個Sinatra應用程序。這樣做沒有什麼特別的好處,它更多地證明了a)API的不止一種方法,以及b)如何將應用程序安裝到Rails中。

因爲Sinatra應用程序將位於您的Rails應用程序的lib目錄中,所以您不必維護單獨的代碼庫。這與API的V2僅在app/controllers/api/v2或其他類似的目錄內相同。

+0

啊,這是有道理的。謝謝! – 2012-04-07 20:52:38

+1

Sinatra和Rails實際上在一起工作得非常好,通常將兩者結合起來。例如,Github正在廣泛地進行這項工作。 – 2012-04-09 14:57:37

+0

你走了,這是一個很不錯的賣點! – 2012-04-10 18:44:44