2017-03-02 13 views
1

私はScalaのAkka-Httpを使って簡単なHTTPサーバーを開発しています。下記のようScalaのAkka Httpを使った単純なHTTPサーバーをエコーする

私のコードは次のとおりです。

object HttpServer extends App { 
    override def main(args: Array[String]): Unit = { 

     implicit val system = ActorSystem("my-system") 
     implicit val materializer = ActorMaterializer() 

     implicit val executionContext = system.dispatcher 

     val route : Route = post { 
      path("echo") { 
       val json = ??? 
       complete((StatusCodes.OK, json)) 
      } 
     } 

     val bindingFuture = Http().bindAndHandle(route, "localhost", 8080) 

     println(s"Server online at http://localhost:8080/\nPress RETURN to stop...") 
     StdIn.readLine() 
     bindingFuture.flatMap(_.unbind()) 
     port.onComplete(_ => system.terminate()) 
    } 
} 

私はまだ十分なScalaのを知りません。そのために、私はいくつかの助けが必要です。

JSONをHttp POST本体から取得してjsonをクライアントに戻す方法がわかりません。

+0

ここから読んでみてください。http://doc.akka.io/docs/akka-http/10.0.0/scala/http/common/json-support.html – mfirry

+0

ありがとうあなたの応答のために。私はそのウェブにあったが、私はそのセクションを見なかった。今は完全に動作します。 –

答えて

4

あなただけのルート定義に抽出器を追加する必要があります。自動的にあなたのためのOKステータス200をセットしますアッカ-HTTPとしてあなたは、明示的にステータスコードを設定する必要はありません

val route : Route = post { 
    path("echo") { 
     entity(as[String]) { json =>  
     complete(json) 
     } 
    } 

注意値を渡すcomplete

関連する問題