Vamos a comenzar viendo cómo crear en PHP
una aplicación que se comunique con un servicio web para obtener información. Por ejemplo, imagínate que quieres conocer lo estudios oficiales que ofrece una Universidad para un curso concreto.
Lo primero que necesitas es una universidad que ofrezca esta información via WSDL
. Para el siguiente ejemplo usaremos la Universidad de Alicante.
Para crear un cliente del servicio, deberás conocer los detalles del mismo (como mínimo, los parámetros de entrada y salida que debes usar, y cuál es la URL
del servicio) y emplear en tu código la clase SoapClient. Para averiguar los detalles del servicio, puedes consultar el documento WSDL
del servicio, disponible en la dirección: "https://cvnet.cpd.ua.es/servicioweb/publicos/pub_gestdocente.asmx?wsdl"
Este es el documento WSDL
obtenido: Documento obtenido (pdf - 0,35 MB)
- El alias del espacio de nombres correspondiente al
XML Schema
que utiliza el documento es:<wsdl:definitions targetNamespace="http://UASI/WS_GESTDOCENTE.wsdl">
- En el documento puedes observa los siguiente, se espera un elemento de tipo
"wstitulosuni
" que serán dos códigos: "plengua
" y "pcurso
" de tipostring
, además en ese orden:<s:element name="wstitulosuni"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="plengua" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" name="pcurso" type="s:string"/> </s:sequence> </s:complexType> </s:element>
- La respuesta
"wstitulosuniResponse"
será un elemento de tipo "wstitulosuniResult
".<s:element name="wstitulosuniResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="wstitulosuniResult" type="tns:ArrayOfClaseTitulosUni"/> </s:sequence> </s:complexType> </s:element>
- El tipo
wstitulosuniResult
es un array de tipoClaseTitulosUni
(arrayOfClaseTitulosUni
). Este array tendrá los elementos siguientes:
<s:complexType name="ClaseTitulosUni"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="codigo" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" name="nombre" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" name="tipo" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" name="area" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" name="url" type="s:string"/> <s:element minOccurs="0" maxOccurs="1" name="imagen" type="s:string"/> </s:sequence> </s:complexType>