Akka Httpルーティングシステムとその拒否システムを使用したいが、一般的なJsonメッセージブロック内の拒否に対して応答Jsonをネストする必要がある。Akka-Httpで拒否を包括的に包む方法
これは非常に非汎用的な方法でRejectionHandlerを作成し、すべての可能性のある拒否に対してケースを追加し、すべてを特定のレスポンスコードとメッセージで処理します。
例:
// Wraps string into control block format
def WrappingBlock(msg: String) = ???
val myRejectionHandler = RejectionHandler
.newBuilder()
.handle{case MalformedRequestContentRejection(msg, detail) =>
complete(BadRequest, WrappingBlock(msg)) }
... // Further lines for all other possible rejections
... // along with their response codes and messages.
... // It would be nice if this was just generic code
... // rather than specific to every rejection type.
.result()
val routes = handleRejections(myRejectionHandler){
...
}
しかし、私が希望するアッカHTTPがデフォルトで提供応答コードともただの行せずにJSON制御ラッパー内にネスト提供され、かなりの印刷メッセージであります可能なすべての拒否タイプ。これは可能なはずだが、私はそれを完了することができなかったようだ。
非常に興味深いですが、私はマップレスポンスとの組み合わせを考えなかったので、そのオプションを見ていきます。 – AlexC
カスタムRejectionHandlerとして書くことはできますか?あなたのケースでは '指令 'を持っている出口で' Route'が必要なので、私はそのような解決策を出すことができませんでした。 – expert
@ruslan、私はあなたが何を求めているのかよく分かりません。ここで説明するカスタム拒否ハンドラを作成することもできます。http://doc.akka.io/docs/akka-stream-and-http-experimental/2.0.2/scala/http/routing-dsl/rejections.html# Customizing_Rejection_Handling。出口で 'Route'対' Directive'をなぜ意味するのか分かりません。おそらくあなたの状況をより良く説明する、これに基づいた新しい質問を作成するでしょう。 – cmbaxter