Akka Http ルーティング システムとその拒否システムを使用したいのですが、一般的な Json メッセージ ブロック内で拒否の応答 Json をネストする必要があります。
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){
...
}
ただし、私が望むのは、Akka HTTP がデフォルトで提供する応答コードと、提供されるきれいな印刷メッセージであり、考えられるすべての拒否タイプの行なしで Json コントロール ラッパー内にネストされているだけです。これは可能であるように思われますが、私はそれを完了することができませんでした。