[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