私はAkka-httpを試しています。うまくいけば、誰かが次の質問に光を当てることができます:
リクエストの accept: ヘッダーに基づいて異なるルートを作成するにはどうすればよいですか? たとえば、「json」を処理するコード パスと「xml」リクエストを処理するコード パスが必要です (ヘッダーがない場合はデフォルトで「json」になります)。
contentType を推測したくない場合、どのように指定すればよいですか? たとえば、以下のコードでは、json を compactPrint() で実行しようとしていますが、これにより文字列に変更されるため、"text/plain" になります。それをオーバーライドして、まだjsonであることをクライアントに伝えたいです。
私のコードは次のようなものです。
...
path("api") {
get {
complete {
getStuff.map[ToResponseMarshallable] {
case Right(r) if r.isEmpty => List[String]().toJson.compactPrint
case Right(r) => r.toJson.compactPrint
case Left(e) => BadRequest -> e
}
}
}
}
...
この場合の応答は text/plain です。これは、compactPrint が文字列を作成するためです。批判大歓迎です。;)