Sinatra vs Rails用于Web服务

时间:2011-12-06 20:00:15

标签: sinatra rails-engines

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

如果你需要速度,只能去Sinatra路线。例如,您的rails应用程序可能会在您希望在移动应用程序中绕过的应用程序控制器中执行大量不必要的计算。即便如此,在开始Sinatra路径之前,我确信它会在移动客户端上占用响应时间。在响应时间内缩短10毫秒可能不值得所有开发人员的时间,除非你正在开发一个高度互动的游戏或其他东西。

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

答案 2 :(得分:0)

我认为你应该摆脱Rails而忘记它。只需将Sinatra用于您的应用程序,只需使用纯机架,只要您可以使用中间件。

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

Rails很慢。为什么不快速运行一切?对于Sinatra和纯机架来说绝对没什么可做的,它非常灵活。