Rest API服务器的Scala框架?

fes*_*sja 104 api rest scala lift

我们正在考虑将我们的Rest API服务器(它在Web服务中,在Symfony PHP上)移动到Scala有以下几个原因:速度,无开销,更少的CPU,更少的代码,可扩展性等.我不知道Scala直到几个几天前,但我一直很享受这些天我用Scala书和所有博客文章和问题学习的东西(它不是那么难看!)

我有以下选择:

  • 从头开始构建Rest API服务器
  • 使用像Scalatra这样的小型Scala Web框架
  • 使用Lift

我将不得不使用的一些东西:HTTP请求,JSON输出,MySQL(数据),OAuth,Memcache(缓存),日志,文件上传,统计(可能是Redis).

你会推荐什么?

olu*_*ies 87

没有特别的顺序:

  • +1,我在工作中使用Akka为高性能API服务器供电.使用JAX-RS和Akka的缺点是JAX-RS装载了大量的Java特性,这些特性并不适合纯粹的Scala项目.尽管如此,Akka还是让整个交易变得有价值. (3认同)
  • Akka是个不错的选择.如果您正在提供JSON,请查看Lift JSON.你可以混合搭配,没问题. (2认同)

Max*_* A. 22

我打算推荐Unfiltered.它是一个惯用的Web框架,它以"Scala方式"执行,并且非常漂亮.


Ngo*_*Dao 15

看看Xitrum(我是它的作者),它提供了你列出的所有内容.它的文档相当广泛.来自README:

Xitrum是一个在Netty和Hazelcast之上的异步和集群Scala Web框架和Web服务器:

  • 根据JAX-RS的精神,注释用于URL路由.您不必在一个地方声明所有路线.
  • 异步,本着Netty的精神.
  • 会话可以存储在Cookie或群集Hazelcast中.
  • 进程内和群集缓存,您不需要单独的缓存服务器.
  • 在进程和集群Comet中,您不需要单独的Comet服务器.


Dav*_*ith 7

我还要添加两个选项:带有内置JAX-RS支持的akka​​,以及直接使用JAX-RS(可能是Jersey实现).虽然可以说比其他人更少"Scala-y"(依靠注释来绑定参数和路径),但JAX-RS使用起来很愉快,干净利落地解决了Web服务编码的所有问题.我没有通过akka使用它,我预计它会非常出色,通过它基于延续的实现获得令人印象深刻的可扩展性.