Spring bootでGZIPリクエスト/レスポンスに対応する

Spring bootでGZipを扱う際は、リクエストへの対応かレスポンスへの対応かで対応方法が異なります。

* やりたいこと * 対応方法
GZIPリクエストに対応する Filter(GZipFilter)の実装
GZIPでレスポンスを返す 設定の変更

GZIPでレスポンスを返す

Appendix A. Common application properties

server.compression.enabled=false # Whether response compression is enabled.

の設定をtrueにしてやれば、とりあえずGZIP形式でのレスポンスとなる。
有効無効の設定がアプリ全体での切り替えになるので、I/F次第では注意が必要。

GZIPリクエストに対応する

Filterインターフェースを実装して、リクエストのServletInputStreamからGZIPInputStreamを生成する。
Content-Encodingを確認して、対応要否の判断は必要かと思います。
実装例なりGitHubなりすばらしい先人がすでにいるので、ソースについては割愛。
自分も実装時に参考にさせていただきました。

GZIPレスポンスもFilterでの実装で対応可能なようですが、GZIPリクエストを有効にできる設定は現状ないようです。