RESTfull Spring アプリケーションで ETag をサポートする予定です。私が公開するリソースのほとんどは、DB でバージョン管理されています。
私はShallowEtagHeaderFilterを知っていますが、これは帯域幅を節約するだけなので、正確には必要なものではありません.
ETag ヘッダーを公開されたエンティティ バージョンに関連付ける Spring MVC の本番対応ソリューションはありますか?
RESTfull Spring アプリケーションで ETag をサポートする予定です。私が公開するリソースのほとんどは、DB でバージョン管理されています。
私はShallowEtagHeaderFilterを知っていますが、これは帯域幅を節約するだけなので、正確には必要なものではありません.
ETag ヘッダーを公開されたエンティティ バージョンに関連付ける Spring MVC の本番対応ソリューションはありますか?
spring-data-rest は、このすぐに使える機能をサポートしています。リファレンス ドキュメントの条件付きリクエストの部分を参照してください。
ResponseEntity
Controller メソッドによって返される型の条件付きリクエストをサポートする Spring Framework 4.2.0+ を使用することもできます -参照ドキュメント を参照してください。
何かのようなもの:
@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);
}
呼び出しを使用してServletWebRequest.checkNotModified
、カスタム eTag を確認できます。これは、この場合はバージョン番号になります。繰り返しますが、これは、コンテンツの変更によってバージョン番号の変更が保証される場合にのみ機能します。
詳細はこちら。