Ho scritto un servlet RESTful e lo sviluppatore dell'interfaccia utente desidera salvare lo stato di accesso sul server.Attaccare le mie pistole REST o rompere l'apolidia? Consigli necessari
Ha fatto questa strana affermazione: "Non ho riscontrato un'implementazione REST di produzione che è puro REST. Quelli che ho visto tutti hanno avuto il server mantenere una sessione."
Trovo che sia difficile da accettare. Prima di tutto c'è il tecnicismo che ci sono un sacco di semplici pagine HTTP là fuori, tutte semplicemente RESTful. In secondo luogo, sì, ci sono implementazioni non RESTful etichettate come RESTful, proprio come c'è l'ottone etichettato "oro". Terzo, solo perché tutti gli altri salta giù da un ponte non significa che dovrei.
Sfondo: È un'applicazione Web Ajax JavaScript che utilizza l'autenticazione HTTPS e di base. Per evitare la solita finestra di popup di accesso al browser (non personalizzabile), l'applicazione mostra una schermata di accesso con il logo del prodotto e le caselle di testo per nome e password. Il nome e la password sono memorizzati nel documento e inviati nell'intestazione Autorizzazione per ogni richiesta. Se si aggiorna la pagina, il nome e la password vengono persi e l'utente deve reinserirli nuovamente. Questo è considerato un bug; lo sviluppatore dell'interfaccia utente desidera essere in grado di premere il pulsante di aggiornamento senza fornire nuovamente la password.
Quindi lo sviluppatore desidera utilizzare un cookie o una sessione JSP. Abby, è vero che alla fine ogni implementazione REST mantiene lo stato dell'applicazione sul server? O c'è un modo per risolvere questo problema e mantenere ancora la mia purezza RESTful?
+1 per gli argomenti solidi che seguono "Trovo che sia difficile da accettare". – Sjoerd
Cosa è più importante per te? Mantenimento della cosiddetta purezza o creazione di una buona applicazione con la funzionalità desiderata? Stai passando le credenziali avanti e indietro attraverso il filo? Se avessi incontrato un'app che mi obbligava a reinserire le mie credenziali ad ogni aggiornamento della pagina, sarei da tempo scomparsa. – DOK
@DOK Non si tratta di purezza, si tratta di prendere decisioni informate. La scelta di costruire un sistema che abbia interazioni stateless ha alcune caratteristiche molto desiderabili. Certo, rende alcune cose più difficili, ma questo è un compromesso da considerare. A volte il guadagno a lungo termine richiede dolore a breve termine. Mi rendo conto che la società di oggi è tutta una questione di gratificazione immediata, ma c'è un prezzo da pagare per questo. –