基于Scala的REST框架Spray

Spray是一系列轻量级Scala库,提供基于Akka框架的客户端/服务端REST/HTTP功能。Spray提供了REST/HTTP所需的一系列可集成的组件,并且以纯ScalaAPI的方式实现,没有使用任何遗留的Java库。

Spray的设计理念:

  • 完全异步、无阻塞
    所有API都是完全异步的,所有实现都避免阻塞的代码。
  • 基于Actor和Future
    完全基于Akka平台编程模型的实现,基于Akka的核心概念Actor和Future构建。
  • 高性能
    为高负载环境下实现卓越性能而精心设计实现的低级组件。
  • 轻量级
    精心管理的依赖,尽量小的依赖关系。
  • 模块化
    由松耦合的集成组件构成,应用可只依赖需要的部分组件。
  • 可测试
    spray组件以结构化的方式组成,便于进行测试。

模块

这里写图片描述

  • spray-caching:基于谷歌concurrentlinkedhashmap和Akka Future的快速、轻量级内存缓存。
  • spray-can: 基于spray-io上的低级、低成本、高性能的HTTP服务器和客户端。
  • spray-client: 基于spray-can的更高级别的客户端HTTP客户端API支持。
  • spray-http: 不可变的HTTP请求、响应、常用头模型。该模块完全独立,不依赖任何Akka和其他spray组件。
  • spray-httpx: 用于HTTP消息(信息编码、解码、压缩等)高级别的工具集,被spray-client、spray-route引用。
  • spray-io: 用于直接将Akka Actors连接到异步Java NIO套接字的低级别网络IO层。可以看做是Scala版的Netty。
  • spray-servlet: 提供基于Servlet API之上的spray-canHTTP服务器接口的适配器层。在servlet容器中使用spray-routing。
  • spray-routing: 定义RESTful服务的高级别路由的DSL。
  • spray-testkit: 便于测试spray-routing服务的DSL,支持ScalaTest和Specs2。
  • spray-util: 除了spray-http以外的公用工具类。
  • spray-json: 轻量级、简洁的JSON实现。它不依赖任何spray和Akka组件,并在spray-client和spray-httpx中作为可选依赖,它不在spray的代码仓库中。它只是spray提供的一种可选择JSON库。

我们需要的HTTP方式

  • 基于case class的模型
  • 基于actor的API(消息协议)
  • 一等函数
  • Scala/Akka Future
  • Scala集合
  • 类型类
  • 类型安全
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值