为什么喷雾可以作为反应体返回?

时间:2015-07-06 11:40:43

标签: scala http routing spray

当我创建这样的喷雾路由器时:

  path("test") {
             get {
               complete
               {
                 StatusCodes.OK
               }
             }
         }

发送简单的获取请求:

HTTP/1.1 200 OK
Server: spray-can/1.3.1
Date: Mon, 06 Jul 2015 11:34:54 GMT
Content-Type: text/plain; charset=UTF-8
Content-Length: 2

OK

为什么在身体中返回OK?这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

不,我不认为这是一个错误。 Spray假设'complete'语句的主体是响应体,它会发现从body返回类型到Spray可以序列化的隐式转换,显然它可以为StatusCode找到这样的转换。

要指定特定的状态代码,您应该使用

complete(status: StatusCode[, value: T])

在您的示例中,只需

path("test") {
  get {
    complete(StatusCodes.OK)
  }
}