2009-07-10 10 views

Antwort

0

Ich wäre besorgt über Caching. Eine Anfrage mit dem Benutzer an der Position A, es wird zwischengespeichert, der Benutzer bewegt sich nach B und führt die Anfrage erneut durch, ruft die Version A der Anfrage ab.

1

Als API sollten Sie darauf abzielen, der Benutzerfreundlichkeit für den Client-Programmierer eine hohe Priorität zu geben. In vielen Bibliotheken, die HTTP unterstützen, ist das Setzen von Cookies in die HTTP-Anfrage schwieriger als beispielsweise die Eingabe eines Abfrageparameters in die URL.

2

Aus einer philosophischen Perspektive ist es nicht wirklich REST, wenn Sie die Ressource nicht über URL eindeutig identifizieren (zumindest nach meinem Lesen von Fielding).

Aus einer praktischen Perspektive - und dies basiert auf Erfahrung - Sie sind in einer Welt der Schmerzen, wenn Sie Web-Service-Anrufe benötigen, um Cookies zu verwenden. In erster Linie, weil es sich um eine Information handelt, die auf einem anderen Codepfad verwaltet werden muss, wodurch Ihr clientseitiger Code komplexer wird. Sie werden auch Probleme mit Domains und Proxies bekommen (insbesondere wenn Sie den Cookie zwischen dem Service und einer herkömmlichen Web-App teilen), und er ist nicht zwischen Clients übertragbar.

Wenn Sie verschiedene Inhalte basierend auf dem Standort erstellen möchten, verwenden Sie einen Geolocation-Dienst.

Bearbeiten: Warum Ort nicht Teil der Anfrage URL machen? Sie können immer noch einen Cookie verwenden, um diese Informationen zu speichern, und retrieve it using JavaScript. Dadurch bleibt Ihre Service-Schnittstelle sauber und Sie können den Service von anderen Clients aus einfach nutzen.

+0

Ich verwende tatsächlich einen Geolocation-Dienst, aber Benutzer haben die Möglichkeit, ihren Standort auszuwählen. Die Idee ist, den Standort immer in einem Cookie zu speichern, so dass: a) Der Benutzer kann einen Speicherort einmal angeben und dann wird es in einem Cookie beibehalten. b) Eine ip-Suche muss nicht bei jeder Anfrage durchgeführt werden, da sie nach dem ersten Nachschlagen im Cookie gespeichert ist. Nun, das war zumindest mein bisheriges Denken ... –

Verwandte Themen