私はRESTfull Springアプリケーション用のETagをサポートする予定です。私が公開するほとんどのリソースはDBにバージョン管理されています。バージョンエンティティ用のSpringでのETagサポート
私はShallowEtagHeaderFilterを知っていますが、これは帯域幅を節約するだけなので、必要なものではありません。
公開されたエンティティのバージョンにETagヘッダーを関連付けるSpring MVCのプロダクション対応ソリューションはありますか?
私はRESTfull Springアプリケーション用のETagをサポートする予定です。私が公開するほとんどのリソースはDBにバージョン管理されています。バージョンエンティティ用のSpringでのETagサポート
私はShallowEtagHeaderFilterを知っていますが、これは帯域幅を節約するだけなので、必要なものではありません。
公開されたエンティティのバージョンにETagヘッダーを関連付けるSpring MVCのプロダクション対応ソリューションはありますか?
spring-data-restは、このアウトオブザボックスをサポートしています。the conditional request part of the reference documentationを参照してください。
コントローラメソッド-から返されたResponseEntity
タイプの条件付き要求をサポートするSpring Framework 4.2.0+を使用することもできます。
のようなもの:あなたはあなたのケースでは、バージョン番号になりますカスタムのetagsをチェックするServletWebRequest.checkNotModified
コールを使用することができます
@RequestMapping("/book/{id}")
public ResponseEntity<Book> showBook(@PathVariable Long id) {
Book book = findBook(id);
String version = book.getVersion();
return ResponseEntity
.ok()
.cacheControl(CacheControl.maxAge(30, TimeUnit.DAYS))
.eTag(version) // lastModified is also available
.body(book);
}
。これは、コンテンツの変更によってバージョン番号が変更された場合にのみ有効です。
詳細here。
良い記事http://www.infoq.com/articles/etagsが見つかりました。これは私が必要としているものと同じですが、やるべき作業がまだ必要です。 – mavarazy
こんにちはmavarazyあなたはhttps://github.com/patrickvankann/spring-conditional-responseを見たことがありますか? –
いいえ私はリンクのおかげで、ありがとう – mavarazy