Meine Idee ist es, URIs in meiner Ruhe-API als eine einzigartige Ressource zu behandeln, außer im Kontext des Aufenthaltsortes des Kunden, der in einem Cookie gespeichert ist. Gibt es Nachteile bei diesem Ansatz?Ist eine REST-API-Anfrage erforderlich, um ein Cookie einzubinden?
Antwort
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.
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.
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.
- 1. Verwenden Sie MySQL, um ein anderes DBMS über ODBC einzubinden
- 2. Was ist der beste Weg, um PHP-Bibliotheken einzubinden, wenn ein statisches Factory-Muster verwendet wird?
- 3. Was ist ein Faser-Cookie?
- 4. ist ein ModelChoiceField immer erforderlich?
- 5. Ist ein Tertiär Operator erforderlich?
- 6. Ist es möglich, Ressourcenpaketdateien in ein Ressourcenpaket einzubinden?
- 7. Fake ein Cookie, um eine Website in Python zu scratzen
- 8. Hilfe erforderlich ist, um LINQ-Abfrage
- 9. Ist ein gültiges CSS erforderlich?
- 10. Visual Studio "Pin ist erforderlich, um eine Verbindung herzustellen"
- 11. Ist es möglich, Quelldateien in eine wixlib einzubinden?
- 12. Ist es sinnvoll, jedes Navigationselement in ein div einzubinden?
- 13. Wordpress - Archivabfrage ändern, um post_status = 'Archiv' einzubinden
- 14. Ist web.xml erforderlich, um eine Spring-Boot-Anwendung bereitzustellen
- 15. Ist eine Konfiguration erforderlich, um benutzerdefinierte Hibernate-Validierungsnachrichten zu verwenden?
- 16. Ist IEnumerable erforderlich, um eine foreach-Schleife zu verwenden?
- 17. Eine Ganzzahl ist erforderlich? (Offen)
- 18. Gibt es eine Möglichkeit, einen Compilator in ein Programm einzubinden?
- 19. Atleast eine Auswahlbox ist erforderlich
- 20. Ist HttpWebRequest.GetResponse erforderlich, um einen POST abzuschließen?
- 21. Möglich, ActionChains move_to_element() in eine Methode einzubinden?
- 22. Ist es möglich, JButton in eine JTable einzubinden?
- 23. Ist POST so sicher wie ein Cookie?
- 24. Ist ein Datenspeicher für die Combobox erforderlich?
- 25. Python 3 - math.sqrt - ein Float ist erforderlich
- 26. Um eine freigegebene Assembly zu erstellen, ist ein Overhead der Signierung erforderlich?
- 27. .NET Framework - Wann ist ein Upgrade erforderlich?
- 28. TypeError: ein Float ist erforderlich, Python
- 29. Cookie-Problem - Cookie ist nicht definiert
- 30. Einfachster Weg, um Audio in die Website einzubinden
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 ... –