スプレー ルーティング キャッシュ ディレクティブと routeCache メソッドを使用して、API 呼び出しをキャッシュしています。
しかし、問題は、API が何らかの理由で 500 を返す場合、その場合にもスプレーがそれをキャッシュし、キャッシュの有効期限が切れるまで 500 を返し続けることです。
では、どうすれば 200 個の OK 応答のみをスプレー キャッシュにキャッシュし、他の応答はキャッシュしないのでしょうか。
スプレー ルーティング キャッシュ ディレクティブと routeCache メソッドを使用して、API 呼び出しをキャッシュしています。
しかし、問題は、API が何らかの理由で 500 を返す場合、その場合にもスプレーがそれをキャッシュし、キャッシュの有効期限が切れるまで 500 を返し続けることです。
では、どうすれば 200 個の OK 応答のみをスプレー キャッシュにキャッシュし、他の応答はキャッシュしないのでしょうか。
以下は働いた
する代わりに
ctx.complete(ErrorCode, Error)
やりました
ctx.failWith(Error)
参照:
failWith
値isFailure
が設定されているため、キャッシュが設定解除されます
(2) http://spray.io/documentation/1.2.2/spray-routing/route-directives/failWith/
適切なステータス コードを維持するには、上記のリンクで説明されているようにカスタム例外ハンドラを使用できます