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
}
- (InpResponseCode, None)
+ InpResponseCode
+ None
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"
}
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.