2016-10-20 1 views
0

ich ein REST-API zu entwickeln, und ich bin den Benutzer mit nur Ressourcen dienen, die auf diese Weise aktualisiert wurden:REST API: Serverzeit in einem Header sendet

www.api.example.com/resources?lastTime=1476952629 

Wie kann ich den Benutzer senden die Serverzeit, damit er diesen Zeitstempel zusammen mit der nächsten Anfrage verwenden kann? Zusätzliches Feld in einem Umschlag ist eine Option, aber vielleicht ist einer der Header für eine solche Verwendung bestimmt?

Antwort

0

Der Header Last-Modified liefert dem Client die Serverzeit für die letzte bekannte Änderung. Ich würde vorschlagen, entweder die Last-Modified oder die ETag Header zu verwenden.

  • Last-Modified mit If-Unmodified-Since wenn Sie von der letzten Änderung Änderungen zu unterscheiden.
  • ETag mit If-None-Match wenn Sie Änderungen durch den Inhalt selbst unterscheiden möchten, zum Beispiel durch die sha256-Prüfsumme (durch die Prüfsumme des Last-Modified-Datums).

Für Browser-Caching müssen Sie einige Caching-Anweisungen mit Ihrer Antwort, die meiste Zeit senden ich so etwas wie:

Cache-Control: max-age=1;must-revalidate;private 
Expires: -1 
+0

, die die richtige Antwort ist. Obwohl ich das Design geändert habe und den Java 8 OffsetDateTime-Typ verwendet habe, kann der Client seine lokale Zeit in ISO 8601 senden, und die Serverseite übersetzt dies für einen Vergleich in UTC. java.time ist großartig – kiedysktos

Verwandte Themen