ruby-on-rails - 为什么《Rails 3 in Action》书中的票务应用程序使用 Sinatra?

标签 ruby-on-rails api rest sinatra

我正在研究在我的 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/

相关文章:

validation - symfony 2 中的 REST 表单验证 - 如何测试帖子

ruby-on-rails - 事件管理员 : How to customize labels for select filter?

ruby-on-rails - ActionDispatch::Routing::Mapper 的未定义方法 `propfind'

REST API设计: do,然后撤消

api - 如何在 bash 中获取我的地理位置

android - react native 谷歌登录 api 不工作

rest - 使用 Angular2 ngrx 的类似 Twitter 的应用程序。构建 AppState

java - JAX-RS Jersey,如何向应用程序动态添加资源或提供者

c# - Rails ActionController 类中的 around_filter 等价于 C# 的东西是什么?

javascript - Vanilla js 无法在我的 Rails 应用程序上运行?