【问题标题】:Sinatra vs Rails for webservice用于 Web 服务的 Sinatra 与 Rails
【发布时间】:2017-01-23 23:08:56
【问题描述】:

我正在寻找编写一个网络服务。用户如何与此服务交互的一个简单示例是用户注册。用户可以点击该服务来创建一个帐户(如果他们是移动的)。另一方面,用户可以使用该服务登录(从移动应用程序)到应用程序。现在,此服务适用于现有的 rails 应用程序。我的计划是在这个 rails 应用程序中构建一个 sinatra 应用程序,并作为一个 rails 引擎安装:这个应用程序将与我现有的 rails 模型交互以生成/使用适当的 json。这是一个好方法吗?有没有人试过这个?谢谢。

【问题讨论】:

    标签: sinatra rails-engines


    【解决方案1】:

    我使用了这种方法:带有 Sinatra 路由的 Rails。如果您提供的是 RESTful api,我还建议您查看类似 Sintra 的特定于 api 的框架 GrapeThis link 展示了如何在 Rails 应用程序中安装 Grape。祝你好运。

    【讨论】:

      【解决方案2】:

      “过早的优化是万恶之源。”

      如果您需要速度,请仅走 Sinatra 路线。例如,您的 Rails 应用程序可能会在应用程序控制器中进行大量不必要的计算,而您希望在移动应用程序中绕过这些计算。即便如此,在我开始走 Sinatra 路径之前,我确实可以肯定它会占用移动客户端的响应时间。除非您正在开发游戏或其他高度交互的东西,否则将响应时间缩短 10 毫秒可能不值得所有开发人员的时间。

      既然您有一个现有的 Rails 应用程序,只需使用 Rails。它已经拥有您需要的大部分代码。您只需要编写一些 JSON 视图。这比并行 Rails/Sinatra 堆栈更简单、更易于维护。

      【讨论】:

        【解决方案3】:

        我认为你应该摆脱 Rails 并忘记它。只需将 Sinatra 用于您的应用程序,并尽可能将纯 Rack 用于您的中间件。

        与流行的看法相反,您可以使用 Sinatra 轻松构建大型应用程序,内部可以按照您想要的任何方式组织。

        Rails 很慢。为什么不为所有事情快速运行一些东西呢? Sinatra 和纯 Rack 绝对没有您不能做的事情,它非常灵活。

        【讨论】:

          猜你喜欢
          • 2012-02-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-28
          • 1970-01-01
          • 1970-01-01
          • 2013-07-14
          相关资源
          最近更新 更多