9

RESTfull Spring アプリケーションで ETag をサポートする予定です。私が公開するリソースのほとんどは、DB でバージョン管理されています。

私はShallowEtagHeaderFilterを知っていますが、これは帯域幅を節約するだけなので、正確には必要なものではありません.

ETag ヘッダーを公開されたエンティティ バージョンに関連付ける Spring MVC の本番対応ソリューションはありますか?

4

2 に答える 2

9

spring-data-rest は、このすぐに使える機能をサポートしています。リファレンス ドキュメントの条件付きリクエストの部分を参照してください。

ResponseEntityController メソッドによって返される型の条件付きリクエストをサポートする 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);
}
于 2015-06-30T20:47:10.897 に答える
0

呼び出しを使用してServletWebRequest.checkNotModified、カスタム eTag を確認できます。これは、この場合はバージョン番号になります。繰り返しますが、これは、コンテンツの変更によってバージョン番号の変更が保証される場合にのみ機能します。

詳細はこちら

于 2015-07-27T18:56:44.450 に答える