Diese Frage fiel mir ein, nachdem ich diesen Beitrag lesen: “Common REST Mistakes: Sessions are irrelevant”Lizenzen und Sitzungen der RESTful Weg
Wenn Sitzungen sind in der Tat in einer RESTful Anwendung abgeraten. Wie würden Sie mit Lizenzen in einer solchen Anwendung umgehen? Ich beziehe mich speziell auf das Modell der gleichzeitigen Lizenzen und nicht auf die benannten Lizenzen. d.h. der Kunde kauft X-Lizenzen, was bedeutet, dass die Anwendung es erlauben kann, dass bis zu X Benutzer gleichzeitig angemeldet sind. Dies bedeutet, dass die Anwendung einen Status für aktuell angemeldete Benutzer enthalten muss.
Ich weiß, ich kann eine Ressource namens Lizenzen erstellen, die ein Cookie setzen oder eine eindeutige ID generieren, und dann muss der Client es mit jeder Anfrage senden. Aber es ist das Gleiche wie das Erstellen einer Sitzung, oder?
Wenn ich den statuslosen Ansatz anwende und den Client auffordere, ein Authentifizierungs-Token für jede Anfrage zu erstellen, wie weiß die Anwendung, wann sie die Lizenz für diesen Client nutzen und freigeben soll?
Gibt es eine Alternative? speziell eine mehr RESTful Alternative?
Wann werde ich die Freigabelizenz aufrufen? damit sich ein anderer Benutzer anmelden kann. Ich möchte nicht, dass die Lizenz nur für die Millisekunden verbraucht wird, in denen die Anforderung tatsächlich auf dem Server verarbeitet wird, sondern für die gesamte Zeit, in der der Benutzer aktiv ist. – LiorH
Deshalb sollten Sie den Staat speichern. Die Sitzung/Lizenz sollte zerstört werden, wenn der Benutzer auf eine Abmeldelinks klickt oder nach einer Zeitüberschreitung. (Dies kann ein Feld in der Datenbanktabelle sein, wie ein Zeitstempel last_login, der für gültige Anfragen auf den aktuellen Zeitstempel aktualisiert wird.) –
@Aram Verstegen, du hast gesagt, deshalb sollte er den Staat retten, aber wenn er den Staat rettet, verstößt das nicht gegen REST-Prinzipien? –