[Python-es] webapp2 y REST - Guardar el estado del cliente con cookies.
Txema Vicente
txema en nabla.net
Lun Oct 8 18:19:39 CEST 2012
Buenas.
Estoy intentando hacerme un toolkit con webapp2 en GAE, que me facilite
producir aplicaciones Dojo desde python.
La idea es que el cliente entra a la pagina principal (State: Ninguno),
se le envia HTML y el Javascript básico (State: Iniciando), y despues de
eso se crea el interfaz de usuario, y todas las peticiones a partir de
aqui (Estado: Listo) son AJAX ó "Dojo-require" que le dan más javascript
al cliente. No se responde nada si no viene de un cliente ya "Listo", y
si la peticion requiere un State distinto, se le pasan las tareas al
cliente que lo lleven a ese estado.
Como intento que sea RESTfull, si lo entiendo bien no debo usar
sesiones, sino que el propio cliente siempre debe comunicar su Estado en
cada petición.
Asi que lo hago con cookies, el problema es que si abre otra pestaña,
las cookies siguen ahi pero el Estado no es correcto.
De momento lo he arreglado así:
- Al iniciar, javascript crea una cookie "state_hash" con un número
único XXX que le ha pasado python.
- Cada vez que hace una petición, el cliente javascript crea una cookie
"state_check"=XXX
- Cada vez que recibe una petición, el servidor python comprueba que
state_hash==state_check:
- Si: le elimina la cookie "state_check" y le responde lo que pida.
- No: le responde 404 No cuela.
Pero digo yo que para esto habra soluciones ya pensadas, no?
Otra forma de hacerlo sin cookies?
Agradezco enlaces o ideas sobre estos temas (REST, generar JS desde python).
Saludos
P.D: Se ve en http://www.vanstats.com.
Más información sobre la lista de distribución Python-es