2015-07-01 53 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/