/ / Verwenden von HTTP für die REST-API: automatisch zwischengespeichert werden? - api, rest, http, caching

HTTP für REST-API verwenden: automatisch zwischengespeichert werden? - api, rest, http, caching

Ich habe mich gefragt, um eine "RESTful API" zu erstellen, müssen Sie die 6 unten aufgeführten architektonischen Einschränkungen erfüllen:

http://en.wikipedia.org/wiki/Representational_state_transfer#Architectural_constraints

Ist es sicher zu sagen, dass wenn Sie ein erstellenREST-API über das HTTP-Protokoll, die "zwischenspeicherbare" Einschränkung wird automatisch erfüllt? Da HTTP bereits ein Cache-System "out-of-the-box" über HTTP-Header bereitstellt: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

Sie brauchen sich also keine Sorgen mehr zu machen?

Vielleicht klingt das nach einer blöden Frage, aber ich möchte sicher gehen. :-)

Mit freundlichen Grüßen!

K.

Antworten:

2 für die Antwort № 1

Lassen Sie mich ein wenig auf die Herausforderungen beim Erstellen eingehenkorrekte Cache-Logik: Normalerweise ist das Backend der API eine Datenbank, die alle Arten von kleinen Informationen enthält. Die typische Darstellung innerhalb einer REST-API kann eine angesammelte Ansicht sein (nehmen wir beispielsweise an, ein Aktivitätsprotokoll eines Benutzers, das eine Liste der letzten Benutzeraktionen innerhalb eines Portals enthält). Um nun zu erfahren, ob sich Ihre API-URL / Benutzer / 123 / -Aktivität geändert hat (nach dem Zeitstempel sendet der Client Sie im "If-modified-since" -Header), müssen Sie prüfen, ob es einen gibt zusätzliche Aktivitäten nach der letzten Anfrage. Der Aufwand dafür könnte derselbe sein, als einfach das Ergebnis erneut abzurufen. In vielen Fällen machen sich die Leute also nicht wirklich die Mühe, was sehr schade ist, da das richtige Caching einen großen Einfluss auf die Leistung der Webanwendung haben kann.

Vielleicht gibt es ein bisschen mehr Details, Jan


2 für die Antwort № 2

Wenn Sie richtig sind, gibt Ihnen HTTP bereits die MittelUm cachefähige Elemente zu identifizieren, aber da Ihre API von einer serverseitigen Logik generiert wird, müssen Sie immer noch sicherstellen, dass der Code "hinter" Ihrer API die richtigen HTTP-Header enthält und bereit und in der Lage ist, auf "If- seit "modifizierte" Anfragen in einer idealen Welt. Das Erstellen eines zuverlässigen "Last-modified" -Zeitstempels sowie das zuverlässige Prüfen davon ist eigentlich ein leises Kunststück ;-)

Hoffe das hilft ein bisschen, Jan