[pyar] Arquitectura cliente-servidor, REST y programación orientada a objetos

Diego Gaustein diego en gaustein.com.ar
Sab Feb 23 21:32:17 ART 2013


Hola lista:

hace un tiempo desarrollé un sistema en Python, usando PySide y SQLAlchemy.
Los modelos tienen algunas complejidades, muchos foreign keys, relaciones
m2m autoreferenciales y algunas con tablas intermedias. De todos modos en
SQLAlchemy resulto todo bastante fácil, y los algoritmos quedaron prolijos.
Ahora me veo en la necesidad de separar el sistema y hacerlo
cliente-servidor, de modo que sólo el servidor tenga contacto directo con
la base de datos. Si bien hay un par de soluciones que permiten compartir
objetos python directamente por la red, pareció mejor idea hacer el
servidor en Django y exponer un API REST. Estuve usando
django-rest-framework y parece andar muy bien.
El problema surge a la hora de consumir los datos en el cliente. Ya no
recibo objetos de una clase en particular, si no diccionarios con los
atributos que necesito. Un ejemplo simple sería el de formularios que
requieren de otros formularios:

[ { 'nombre': 'formulario1', 'id': 1, 'completado': True}, { 'nombre':
'formulario2', 'id': 2, 'requeridos': [1] } ]

Si quería saber, en SQLAlchemy, si los requeridos de uno formulario estaban
completados, podía hacer algo similar a:
all( ( form.completado for form in formulario2.requeridos ) )
Usando la estructura de diccionario, pierdo los enlaces entre los distintos
objetos, por lo que tendría que reescribir casi todos los algoritmos, y me
imagino que tiene que haber algo mejor. ¿cómo puedo hacer para seguir
trabajando en un modo orientado a objetos? ¿conocen algún framework? ¿cómo
hacen las aplicaciones móviles complejas (por ej, facebook) para resolver
esto?

Gracias! saludos,
Diego
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130223/5151cb38/attachment.html>


More information about the pyar mailing list