首页 > 解决方案 > 从 spray.routing 中提取消息

问题描述

我有以下代码片段:

val route: Route = complete("foo")

如何从“路由”值中提取“foo”消息?可能吗?我只知道以下用于测试用例的工具:

Get("/") ~> route ~> check {
    responseAs[String] === "foo"
}

但我不需要执行测试用例,我使用以下工具解析 JSON 字符串:

val route: Route = entity(as[JsObject]) { entry: JsObject =>
   ...
   complete("Succeeded")
}

如果输入的 JSON 字符串有效,则没有问题。如果它无效,“实体”函数会返回一个“Route”对象,其中包含一条消息,该消息的索引为输入 JSON 字符串中的无效字符,这就是为什么我需要从输入 JSON 字符串。例如:

val responseString: String = ...
if (responseString.ne("Succeeded")) {
    ...
    complete("Error: ..." + as[JsString].toString.substring(start, end))
}

但我不知道如何提取响应字符串。

标签: akka-httpsprayspray-jsonspray-routing

解决方案


推荐阅读