Akka http处理程序json验证

Akka http处理程序json验证,json,scala,validation,akka,spray-json,Json,Scala,Validation,Akka,Spray Json,我对斯卡拉和阿克卡很陌生。我正在尝试使用akka编写一个简单的Http处理程序,akka接收json。我想将这个json封送到一个scala类/对象进行处理。由于它是一个输入,我还想对所需的json节点和值类型执行基本验证。我发现我必须使用spray-json来实现它。但是我找不到更多关于如何做到这一点的信息,我正在寻找关于这一点的样本/模板。非常感谢您的帮助。我有一个超级简单的演示应用程序,专门针对您的用例: 您可以在此处查看Spray序列化/反序列化和Akka集成: 例如,这是使用spray

我对斯卡拉和阿克卡很陌生。我正在尝试使用akka编写一个简单的Http处理程序,akka接收json。我想将这个json封送到一个scala类/对象进行处理。由于它是一个输入,我还想对所需的json节点和值类型执行基本验证。我发现我必须使用
spray-json
来实现它。但是我找不到更多关于如何做到这一点的信息,我正在寻找关于这一点的样本/模板。非常感谢您的帮助。

我有一个超级简单的演示应用程序,专门针对您的用例:

您可以在此处查看Spray序列化/反序列化和Akka集成:

例如,这是使用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 =>
    // ...
}
稍后,您还可以看到使用“询问”模式从喷洒层向参与者传递消息的示例。更高级的示例: