Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/03/2013, 13:52
Cobol
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 11 años, 11 meses
Puntos: 0
Recorrer estructura de datos para generar formulario web

Hola a todos, espero que alguno pueda ayudarme.

Estoy realizando un programa que invoca servicios web de manera dinámica , algo parecido a esto

http://www.soapclient.com/soaptest.html

Para esto he utilizado la api para Python llamada SUDS

https://fedorahosted.org/suds/wiki/Documentation

Bueno ahora el problema es este, SUDS tiene un método que genera una estructura de datos a partir de una cadena de texto que identifica a alguna operación definida en el servicio web. Esta estructura de datos representa los parámetros de entrada que esta operación acepta.
Ejemplo

Código PHP:
>>> foo cliente.factory.create('GetACHReturnsRC')
>>> print 
foo

(GetACHReturnsRC){
   
InpCompanyInfo 
      (
CompanyInfo){
         
SSS None
         LocID 
None
         Company 
None
         CompanyKey 
None
      
}
   
InpResponseCode None
 
}
>>> for 
x in foo:
>>> . . . print 
'-',x
>>> . . . for y in x:
>>> . . . . . . print 
'  +',y

- (InpCompanyInfo, (CompanyInfo){
      
SSS None
      LocID 
None
      Company 
None
      CompanyKey 
None
   
})
     + 
InpCompanyInfo
     
+ (CompanyInfo){
         
SSS None
         LocID 
None
         Company 
None
         CompanyKey 
None
    
}
- (
InpResponseCodeNone)
     + 
InpResponseCode
     
None 
Aquí se puede ver que el nombre de la operación es:
GetACHReturnsRC

que recibe dos parámetros de nombre
InpCompanyInfo
InpResponseCode


El parámetro InpCompanyInfo es de tipo CompanyInfo que incluye los parámetros anidados
SSS
LocID
Company
CompanyKey


Esta estructura de datos puede ser llenada de la siguiente forma:

Código PHP:
>>> foo.InpCompanyInfo.SSS '123'
>>> foo.InpCompanyInfo.LocID '35'
>>> foo.InpCompanyInfo.Company 'Intel'
>>> foo.InpCompanyInfo.CompanyKey '33'
>>> foo.InpResponseCode 'Ok'
>>> print foo

(GetACHReturnsRC){
   
InpCompanyInfo 
      (
CompanyInfo){
         
SSS "123"
         
LocID "35"
         
Company "Intel"
         
CompanyKey "33"
      
}
   
InpResponseCode "Ok"
 

Lo que necesito es una forma de generar un formulario web a partir de esta información, en la página de ejemplo:

http://www.soapclient.com/soaptest.html

representan esta situación de la siguiente forma



¿Cómo podría generar un formulario parecido a este, y cómo podría asignar los valores ingresados en el formulario a mi estructura?

Las restricciones:
Al inicio solo conozco el nombre de la operación, es decir, desconozco el nombre de los parámetros de entrada y si contienen campos anidados.
Al llamar a SUDS, el resultado sería como el del ejemplo previo, es decir, la información requerida vendría "empaquetada" en la estructura devuelta por SUDS.
Lo que devuelve SUDS es toda la información que tendría para generar los formularios.

P.D. Estoy utilizando el framework Django.

Muchas gracias por su ayuda.

Última edición por Cobol; 30/03/2013 a las 14:17