我们正在考虑将我们的Rest API服务器(它在Web服务中,在Symfony PHP上)移动到Scala有几个原因:速度,无开销,更少的CPU,更少的代码,可扩展性等等。我不知道Scala直到几天前,但我一直很享受这些天我用Scala书和所有博客文章和问题学习的东西(它不是那么难看!)
我有以下选择:
我将不得不使用的一些东西:HTTP请求,JSON输出,MySQL(数据),OAuth,Memcache(缓存),日志,文件上传,统计(可能是Redis)。
你会推荐什么?
答案 0 :(得分:86)
没有特别的顺序:
答案 1 :(得分:22)
我将推荐Unfiltered。这是一个习惯性的Web框架,它以“Scala方式”执行,并且非常漂亮。
答案 2 :(得分:15)
看看Xitrum(我是它的作者),它提供了你列出的所有内容。 Its doc非常广泛。来自README:
Xitrum是一个异步和集群的Scala Web框架和Web服务器,位于Netty和Hazelcast之上:
答案 3 :(得分:7)
我还会添加两个选项:akka,内置JAX-RS支持,直接使用JAX-RS(可能是Jersey实现)。虽然可以说比其他人更少“Scala-y”(依靠注释来绑定参数和路径),但JAX-RS使用起来很愉快,干净利落地解决了Web服务编码的所有问题。我没有通过akka使用它,我预计它会非常出色,通过它基于延续的实现获得令人印象深刻的可扩展性。
答案 4 :(得分:4)
查看Finch,一个用于构建Finagle HTTP服务的Scala组合器库。 Finch允许您从多个预定义的基本块中构造复杂的HTTP端点。与解析器组合器类似,Finch端点易于重用,组合,测试和推理。
答案 5 :(得分:3)
到目前为止所有的好答案。 Lift的一个优点是RestHelper,它可以很容易地编写简短,优雅的API方法。此外,您想要做的所有其他事情应该非常直接在Lift中实现。话虽如此,Memcache可能没有必要。
答案 6 :(得分:2)
现场有点晚了,但我肯定会建议使用Bowler框架来创建REST API。它小,到点和自动案例类转换支持!