首页 文章

Rest API服务器的Scala框架? [关闭]

提问于
浏览
100

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

我有以下选择:

  • 从头开始构建Rest API服务器

  • 使用像Scalatra这样的小型Scala Web框架

  • 使用Lift

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

你会推荐什么?

7 回答

  • 4

    有点晚了,但我肯定会建议使用Bowler框架来创建REST API . 它小,到点和自动案例类转换支持!

  • 7

    看看Finch,一个用于构建Finagle HTTP服务的Scala组合器库 . Finch允许您从多个预定义的基本块中构造复杂的HTTP endpoints . 与解析器组合器类似,Finch endpoints 易于重用,组合,测试和推理 .

  • 3

    到目前为止所有的好答案 . Lift的一个优势是它的RestHelper,它可以很容易地编写简短,优雅的API方法 . 此外,您想要做的所有其他事情应该非常直接在Lift中实现 . 话虽如此,Memcache可能没有必要 .

  • 84

    没有特别的顺序:

  • 2

    我打算推荐Unfiltered . 这是一个惯用的Web框架,可以完成任务并且非常漂亮 .

  • 15

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

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

    • 注释用于URL路由,本着JAX-RS的精神 . 您不必在一个地方声明所有路线 .

    • 异步,本着Netty的精神 .

    • 会话可以存储在Cookie或群集Hazelcast中 .

    • 进程内和群集缓存,您不需要单独的缓存服务器 .

    • 进程内和集群Comet,您不需要单独的Comet服务器 .

  • 22

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

相关问题