Akka http处理程序json验证

时间:2015-07-01 14:07:49

标签: json scala validation akka spray-json

我对Scala和Akka很新。我正在尝试使用接收json的akka​​编写一个简单的Http处理程序。我想将这个json编组为scala类/对象进行处理。由于它是一个输入,我还想对所需的json节点和值的类型执行基本验证。我发现我必须使用spray-json。但我无法找到有关如何执行此操作的更多信息,我正在寻找样本/模板。任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

我有一个专门针对您的用例的超简单演示应用程序:https://github.com/sap1ens/akka-microservice

您可以在此处查看Spray序列化/反序列化和Akka集成:https://github.com/sap1ens/akka-microservice/blob/master/src/main/scala/com/sap1ens/api/Example1Routes.scala

例如,这是使用spray-json库的方法:

object Example1Routes {
  case class TestAPIObject(thing: String)

  object Example1RoutesProtocol extends DefaultJsonProtocol {
    implicit val testAPIObjectFormat = jsonFormat1(TestAPIObject)
  }
}

jsonFormatX会为您处理序列化程序和反序列化程序。

然后你可以在Spray DSL中使用它:

entity(as[TestAPIObject]) { request =>
    // ...
}

稍后您还可以看到使用“ask”模式从Spray图层向Actors传递消息的示例。更高级的示例:http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/