2015-07-01 47 views
2

我对Scala和Akka很新。我正在尝试使用接收json的akka​​编写一个简单的Http处理程序。我想把这个json编组到一个scala类/对象进行处理。既然它是一个输入,我也想对所需的json节点和值的类型进行基本验证。我发现我必须使用spray-json。但我无法找到更多关于如何做到这一点的信息,我正在寻找样品/模板。任何帮助将不胜感激。Akka http处理程序json验证

回答

2

我有一个超级简单的演示应用程序专为您的使用情况:https://github.com/sap1ens/akka-microservice

你可以看看喷雾序列化/反序列化和阿卡集成在这里: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负责为您提供序列化器和反序列化器。

然后你就可以在喷雾DSL使用它:

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

后来你还可以看到用“问”的格局从喷涂层传递消息到演员的例子。更高级的例子:http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/