Lesen Sie das Buch REST practice und erhalten Sie ein besseres Verständnis der Web-Scale-out-Basis auf dem Cache. Aber wenn ich versuche, http-Cache-Kontrolle in meinem Spring-Boot-Projekt hinzuzufügen, fand ich nichts Besonderes zur Cache-Kontrolle. Die einzige Ressource, die ich bekam, ist ResponseEntity: das Javadoc. Und der nützlichste Artikel für ETag ist http://www.baeldung.com/etags-for-rest-with-spring.Warum schlechte Unterstützung für http-Cache-Steuerelement in Spring MVC?
Das macht mich verwirrend ... Wenn die Cache-Steuerung wirklich großartig ist, warum wenig Unterstützung für Etag Generation und Cache-Steuer-Ressourcen gefunden? Oder ist das momentan nicht die beste Vorgehensweise?
Im Moment sieht meine Implementierung wie folgt aus:
@RestController
public class Api {
@GetMapping("/with-cache")
public ResponseEntity cache() throws InterruptedException {
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setCacheControl("max-age=3600");
httpHeaders.setETag("\"3Rstthw\"");
Thread.sleep(1000);
return new ResponseEntity<>("Hello", httpHeaders, HttpStatus.OK);
}
}
nicht sehr elegant aussieht. Hoffe jemand kann eine Antwort dafür geben.
Ist es wichtig "warum"? Beachten Sie, dass es sich um eine Q & A-Site und keine Diskussionsrunde handelt. –
Was denkst du, wäre "bessere" Unterstützung? --- Beachten Sie, dass Etags nicht "generiert" werden. Sie stellen die * Version * der betreffenden Ressource dar. Z.B. so formuliert es [Wikipedia] (https://en.wikipedia.org/wiki/HTTP_ETag): * Ein ETag ist eine undurchsichtige Kennung, die von einem Webserver einer ** spezifischen Version einer Ressource zugewiesen wird, die an einer URL * gefunden wird. *. Wenn sich die Ressourcendarstellung bei dieser URL ändert, wird ein neues und anderes ETag zugewiesen. * Da Spring nicht weiß, woher die Nutzdaten der Antwort stammen, wie kann Spring wissen, welche Version dieser Nutzlast es ist? – Andreas