我们正在考虑将我们的Rest API服务器(它在Web服务中,在Symfony PHP上)移动到Scala有以下几个原因:速度,无开销,更少的CPU,更少的代码,可扩展性等.我不知道Scala直到几个几天前,但我一直很享受这些天我用Scala书和所有博客文章和问题学习的东西(它不是那么难看!)
我有以下选择:
从头开始构建Rest API服务器
使用像Scalatra这样的小型Scala Web框架
使用Lift
我将不得不使用的一些东西:HTTP请求,JSON输出,MySQL(数据),OAuth,Memcache(缓存),日志,文件上传,统计(可能是Redis).
你会推荐什么?
没有特别的顺序:
Akka HTTP
喷雾
Paypal squbs(Akka/Spray)
DropWizard
REST.li
http4s
蓝眼睛
Finagle - 容错,协议无关的RPC系统
玩!和迷你玩!(文章)(教程)
提升 /提升JSON.-使提供REST服务变得简单.
我打算推荐Unfiltered.它是一个惯用的Web框架,它以"Scala方式"执行,并且非常漂亮.
看看Xitrum(我是它的作者),它提供了你列出的所有内容.它的文档相当广泛.来自README:
Xitrum是一个在Netty和Hazelcast之上的异步和集群Scala Web框架和Web服务器:
根据JAX-RS的精神,注释用于URL路由.您不必在一个地方声明所有路线.
异步,本着Netty的精神.
会话可以存储在Cookie或群集Hazelcast中.
进程内和群集缓存,您不需要单独的缓存服务器.
在进程和集群Comet中,您不需要单独的Comet服务器.
我还要添加两个选项:带有内置JAX-RS支持的akka,以及直接使用JAX-RS(可能是Jersey实现).虽然可以说比其他人更少"Scala-y"(依靠注释来绑定参数和路径),但JAX-RS使用起来很愉快,干净利落地解决了Web服务编码的所有问题.我没有通过akka使用它,我预计它会非常出色,通过它基于延续的实现获得令人印象深刻的可扩展性.