Sono nuovo ai servizi web RESTful e RESTlet. ABBIAMO solo esperienza nella creazione di applicazioni Web basate su servlet (Servlet/JSP su JBoss/Apache). Ora stiamo costruendo un'applicazione basata su RESTlet in cui l'API lato server viene utilizzata da due tipi di client: il Web utilizza il browser e lo swing basato sul desktop.Come applicare "sessioni" nei servizi Web RESTful tramite RESTlet?
Quello che ho capito è che, come per REST concetti a) del server non può mantenere le sessioni per migliorare la scalabilità e pochi altri motivi b) ogni richiesta dal client deve essere autosufficiente
Ora, io sono davvero confuso come ottenere questo. Supponiamo di prendere una semplice applicazione per il carrello degli acquisti.
Passaggio 1) Il client invia la richiesta di autenticazione, il server autentica e il server risponde OK.
Passaggio 2) Il client invia una richiesta per aggiungere un articolo al carrello. Il server risponde OK.
Passaggio 3) Il client invia un'altra richiesta per aggiungere il secondo articolo alla carta acquisti. Il server risponde OK.
Normalmente, in una normale app Web, una sessione viene creata nel passaggio 1 sul server e da quel momento in poi tutte le richieste relative a quel client vengono automaticamente associate alla stessa sessione e viene memorizzato lo stato della sessione (Carrello acquisti in questo caso) nell'oggetto di sessione e recuperarlo/aggiornarlo con le richieste successive dal client.
Ora, nello scenario di cui sopra:
1) come si fa autenticare e autorizzare client nella Fase 2 e 3 se non v'è nessuna sessione mantenuto sul server?
2) il client deve inviare alcune informazioni aggiuntive con ciascuna richiesta?
3) Come si recupera il carrello acquisti specifico del cliente nel passaggio 3?
4) Il client deve inviare il suo carrello acquisti che è stato creato/restituito dal server al passaggio 2 di nuovo nel passaggio 3?
Ovviamente, questo è il caso di utilizzo più semplice e quindi tutti quelli che sviluppano servizi Web RESTful devono progettare la propria app per gestirli. Qual è il modo migliore e più comune per gestire la gestione delle sessioni, l'autenticazione, l'autorizzazione nei servizi web RESTful usando RESTLet? Se dobbiamo mantenere la cache sul lato server con i dati del cliente, in che modo questo è diverso dal server che mantiene le sessioni per nostro conto?
Grazie in anticipo, profonda
ma perché è male se il server si ricorda chi sei (e solo quello). se non si aderisce dogmaticamente alle specifiche REST, è possibile scendere a compromessi e salvarsi dall'invio dell'autenticazione ogni singola richiesta. – amphibient
Il tuo design può sopravvivere al riavvio? Inoltre c'è sempre qualche assegno per assicurarsi che sia la stessa persona e non una sessione rubata. – PhD