我正在研究在我的 Ruby on Rails 应用程序旁边构建平台 API 的最佳方法。我遇到了这个question其中引用ticketee ,一个为 Rails 3 in Action 编写的示例应用程序。我查看了他们构建的 API,注意到他们没有在 Ruby on Rails 堆栈中使用“respond_to”或任何类型的 JSON 生成函数来支持他们的 API。他们实际上是在 Ruby on Rails 之外使用 Sinatra 构建了他们的 API。这是最佳实践吗?这本质上不需要维护两个代码库吗?也许我缺少一些链接?
作为一个后续问题,如果这是最佳实践并且不需要开发人员维护两个代码库,那么使用 Sinatra 而不是“respond_to”方法或 Rails Controller 内其他类型的 JSON 生成的优点是什么?
最佳答案
我们在第 13 章中确实使用了 respond_to
作为 API 的第一个版本,但为了在第 18 章中演示如何安装 Rack 应用程序,我们为此构建了一个 Sinatra 应用程序。这样做并没有什么特别的好处,更多的是为了证明 a) 为 API cat 换肤的方法不止一种,b) 如何将应用程序挂载到 Rails 中。
可以这么说,您不必维护单独的代码库,因为 Sinatra 应用程序将位于 Rails 应用程序内的 lib
目录中。这就像 API 的 V2 位于 app/controllers/api/v2
的另一个目录或类似目录中一样。
关于ruby-on-rails - 为什么《Rails 3 in Action》书中的票务应用程序使用 Sinatra?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054939/