【问题标题】:Building a REST API with Ruby/Sinatra and JRuby or Scala使用 Ruby/Sinatra 和 JRuby 或 Scala 构建 REST API
【发布时间】:2012-01-21 08:35:11
【问题描述】:

我正在构建一个新的 REST API 来替换现有的 API。较旧的 API 被编写为使用 Java 构建的 SOAP API,这就是问题所在。 大多数数据访问层库都是用 Java 编写的,如果我们可以使用这些库,那将是一笔巨大的财富。

到目前为止,我们的两个选项是:Ruby/SinatraScala/Lift

我们还可以在 Ruby/Sinatra 堆栈上使用 JRuby 以使用我之前提到的 Java 库。我们主要担心 JRuby-Java 库可能不兼容...

你认为最好的方法是什么?

【问题讨论】:

  • 我从未使用过 Scala/Lift,但我们有一个用 Ruby/Sinatra 编写的 REST API,它运行良好。也非常快。没有大量从 ruby​​ 运行 java 库的经验,但如果我没记错的话,我认为即使没有 JRuby,它也是非常可行的。
  • 是的,我认为 ruby​​ 将是一个不错的选择。然而,在这些 Java 库上投入了如此多的工作,而我们的时间框架并不理想,无法对此抱有信心。
  • 听起来像 Jruby 可能是要走的路:engineyard.com/blog/2011/using-java-from-ruby-with-jruby-irb

标签: ruby api scala sinatra jruby


【解决方案1】:

似乎您已经选择了一个答案,但只有我的 2 美分: 如果您确实想尝试 Lift,wiki 上有一个 lift REST 示例,Simply Lift book 上有另一个示例。

可以在blog post 上找到一个使用 REST 但也具有基于 Comet 的前端的更复杂的示例(免责声明:我写了那篇文章)

【讨论】:

  • 谢谢。会看看:)
【解决方案2】:

过去 2 年我一直在使用 Ruby,最近尝试使用 Scala 和 Lift 开发应用程序。

我放弃了 Scala,转而使用 Ruby,这就是原因。

与 Lift 相比,Ruby 社区非常庞大,基本上你可以得到所有东西的 gem,有大量的文档和教程,当你遇到问题时很容易得到快速的响应。 SO上的Lift标签只有大约500个问题。

Lift 有一种完全不同的处理方法,除非你已经了解 Scala,否则在你掌握它之前会给你带来很多痛苦。

另一方面,Sinatra 非常简单而且显而易见。它很容易与其他基于机架的库集成,并且有大量关于 Sinatra 相关问题的文档和教程。

我不想听起来我认为 Lift 很糟糕,但一开始肯定要复杂得多。使用 Sinatra 进行原型制作也非常简单,因为您可以将所有内容放入一个文件中。 Lift 的重量要重得多。

所有这一切归结为偏好问题。如果你不怕 Scala,试试 Lift。但如果你只是想把事情做好,Sinatra 会让你的头疼得更少。

【讨论】:

  • 在这一点上,我们真的需要用尽可能少的“未知”来完成工作。你有使用过 JRuby 的经验吗?
  • @JoséP.Airosa 我对redcareditor.com 的贡献很少,但我从未真正遇到任何问题。特别是如果你选择使用像 Sinatra 这样简单的东西,它应该很容易与 Java 集成。
  • 我真的不了解 Ruby 社区,但是 Lift 社区非常活跃,只是这里没有。对于 Lift 的问题,您最好在 mailing list 上提问,几乎没有人回答。
【解决方案3】:

如果您正在查看 Ruby/Sinatra,您可能需要考虑 Scala/Scalatra 而不是 lift,因为它们非常相似。 scala 在这里的优势将是一个非常非常好的 java 互操作性 另一个需要考虑的 scala 选项是 Finagle(我最喜欢的),因为它经过现场验证并且面向托管服务(与网页相比)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-23
  • 2023-03-31
  • 2019-01-28
相关资源
最近更新 更多