使用Ruby/Sinatra和JRuby或Scala构建REST API

Jos*_*osa 3 ruby api scala jruby sinatra

我正在构建一个新的REST API,它将取代现有的REST API.较旧的API被编写为使用Java构建的SOAP API,这就是问题所在.大多数数据访问层库都是用Java编写的,如果我们可以使用这些库将是一个很好的资产.

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

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

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

Arn*_*-Oz 5

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


Jak*_*old 5

我在过去的两年里一直在使用Ruby,最近尝试使用Scala&Lift开发应用程序.

我放弃了Scala,支持Ruby,这就是原因.

与Lift相比,Ruby社区是巨大的,你可以为所有东西获得一个宝石,有大量的文档和教程,当你遇到麻烦时很容易获得快速响应.SO上的Lift标签只有大约500个问题.

Lift有一个完全不同的方法,除非你已经知道Scala,否则在你掌握它之前会给你带来很多痛苦.

另一方面,Sinatra死得简单明了.它很容易与其他基于机架的库集成,并且有大量关于Sinatra相关问题的文档和教程.

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

所有这一切都归结为优先考虑.如果您不害怕Scala,请试试Lift.但如果你只是想完成这些工作,那么Sinatra会给你带来更少的麻烦.