| You are here: Inicio > Inmersión en Python > Servicios web SOAP > Presentación de WSDL | << >> | ||||
Inmersión en PythonPython de novato a experto |
|||||
La clase SOAPProxy hace proxy de llamadas locales a métodos y las convierte de forma transparente en invocaciones a métodos SOAP remotos. Como ya ha visto esto lleva mucho trabajo, y el SOAPProxy lo hace rápida y transparentemente. Lo que no hace es proporcionarnos ningún tipo de método para introspección.
Consideremos esto: las dos secciones anteriores mostraron un ejemplo de llamada a un método remoto SOAP sencillo con un argumento y un valor de vuelta, ambos de tipos de datos simples. Esto precisó saber y hacer un seguimiento de: la URL del servicio, el espacio de nombres, el nombre de la función, el número de argumentos, y el tipo de datos de cada uno. Si alguno de estos falta o es incorrecto, todo se cae en pedazos.
Eso no debería sorprendernos. Si yo quisiera invocar una función local necesitaría saber en qué paquete o módulo se encuentra (el equivalente a la URL y espacio de nombres del servicio). Necesitaría saber el nombre y número de argumentos correctos de la función. Python maneja con destreza los tipos de datos sin necesidad de explicitarlos, pero aún así necesita saber cuántos ha de pasar, y cuántos se esperan de vuelta.
La gran diferencia es la introspección. Como pudo ver en Capítulo 4, Python es excelente en lo que se refiere a permitirle descubrir cosas sobre módulos y funciones en tiempo de ejecución. Puede listar las funciones que dispone un módulo y, con un poco de trabajo, ahondar hasta la declaración y argumentos de funciones individuales.
WSDL le permite hacer esto con los servicios web SOAP. WSDL significa “Web Services Description Language[14]”. Aunque se diseñó para ser lo suficientemente flexible para describir muchos tipos de servicios web, se usa con más frecuencia para describir servicios SOAP.
Un fichero WSDL es eso: un fichero. Más específicamente, es un fichero XML. Suele residir en el mismo servidor al que accede en busca del servicio web SOAP que describe, aunque no hay nada especial en él. Más adelante en este capítulo descargaremos el fichero WSDL de la API de Google y lo usaremos de forma local. Eso no significa que vayamos invocar localmente a Google; el fichero WSDL describe las funciones remotas que se encuentran en el servidor de Google.
Un fichero WSDL contiene una descripción de todo lo que implica una llamada a un servicio web SOAP:
En otras palabras, un fichero WSDL le dice todo lo que necesita saber para poder llamar a un servicio web SOAP.
[14] Lenguaje de descripción de servicios web
<< Depuración de servicios web SOAP |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
Introspección de servicios web SOAP con WSDL >> |