PDF de programación - Web services con PHP

Imágen de pdf Web services con PHP

Web services con PHPgráfica de visualizaciones

Publicado el 16 de Junio del 2018
933 visualizaciones desde el 16 de Junio del 2018
289,1 KB
16 paginas
Creado hace 12a (30/01/2009)
WEB SERVICES CON PHP (desarrolloweb)

1

Introducción a los Web Services en PHP

El presente artículo esta dirigido a las personas que ya poseen conocimientos sobre
Internet y programación y quieren comenzar a conocer el mundo de los web services
(servicios web).

¿Cómo esta estructurado el artículo?

Comenzaremos dando una introducción a lo que son los Web Services (Servicios Web),
luego definiremos los elementos que lo componen, y al finalizar veremos un ejemplo
de cómo utilizar un web service por medio de NuSOAP, para el cual utilizaremos dos
archivos PHP.

En el apéndice pueden encontrar el código de los dos archivos que consumen el web
service para poder verlos en línea, o bajarlos comprimidos (ZIP). El archivo comprimido
también provee de otros archivos de soporte.

Introducción:

Antes de comenzar explicando NuSoap, creo que es conveniente realizar una
introducción a lo que son los Servicios Web, y para esto debemos comenzar con la
definición de Web Service.

Web Service:

Es un sistema software diseñado para soportar la interoperabilidad máquina - máquina
a través de una red. Este tiene una interfaz descripta en un formato que puede ser
procesado por una máquina (específicamente WSDL, que veremos más adelante).
Otros sistemas interactúan con el Web service utilizando mensajes SOAP los cuales se
encuentran establecidos previamente.

Entonces podríamos decir que un Web Service es una comunicación por medio de
mensajes SOAP (son mensajes especiales que más adelante veremos detenidamente)
entre diferentes equipos a través de una red.

Ahora pasaremos a definir los elementos que componen a los Web Services, para luego
ver como ellos estan interrelacionados.

¿Qué es XML, SOAP, WSDL, UDDI?

Para conocer cómo se realiza el intercambio de mensajes en los Web Services
debemos primero saber cuales son los elementos fundamentales que lo componen.
Estos son el XML, SOAP, WSDL, y UDDI.

XML - eXtensible Markup Language:

Es un subconjunto simplificado del SGML el cual fue diseñado principalmente para
documentos Web. Deja a los diseñadores crear sus propias “etiquetas” o "tags" (Ej:
<libro>), habilitando la definición, transmisión, validación, y la interpretación de datos
entre aplicaciones y entre organizaciones. Un punto que considero que es importante
aclarar es que el HTML y el XML tienen funciones diferentes. El HTML tiene por objeto

Manual de Web Services en PHP



mostrar información, mientras que el XML se ocupa de la información propiamente
dicha (el contenido). Este concepto es importante tenerlo en cuenta, ya que muchas
personas al escuchar sobre XML piensan que es el sucesor de HTML.

Ejemplo de un documento XML sobre información de autos:

2

<?xml version="1.0" encoding="UTF-8"?>
<vehiculos>
<coche>
<marca>Toyota</marca>
<modelo>Corolla</modelo>
<fechaCompra>2002</fechaCompra>
</coche>
<coche>
<marca>Honda</marca>
<modelo>Civic</modelo>
<fechaCompra>2003</fechaCompra>
</coche>
</vehiculos>

Seguramente este tipo de archivos no sea una novedad para la mayoría de los que
lean este artículo, ya que muchos documentos en Internet están en formato XML.
Igualmente explicaremos brevemente las secciones del mismo:

<?xml version="1.0" encoding="UTF-8"?>

Todo documento XML debe comenzar indicando que es un documento XML, la versión del mismo y su
codificación. Es por eso que se utiliza el tag <?xml .... ?> . Todos los elementos a partir de aquí son
definidos por el usuario.


<vehiculos>

Luego se indica un tag raiz (<vehiculos>) el cual contendrá a los demás elementos. Es como en HTML el tag
<HTML> .. </HTML>, que dentro de el se encuentran los demás tags. Se lo conoce generalmente como root
del documento.


<coche>

Luego definimos un tag <coche> el cual contendrá un coche en particular (en este caso solo incorpore 3
características de un coche: marca, modelo, y fecha de compra).


<marca>Toyota</marca>
<modelo>Corolla</modelo>
<fechaCompra>2002</fechaCompra>

Se definen 3 tags (marca, modelo, y fechaCompra), los cuales contienen los datos para un coche en
particular.


<vehiculos>
<coche>
<marca>..</marca>
<modelo>..</modelo>
<fechaCompra>..</fechaCompra>
</coche>
</vehiculos>

En el documento podemos apreciar que todos los tags que son abiertos <marca> deben ser cerrados
</marca>. Esto es una exigencia del XML.

Se pueden anidar tags <coche><marca></marca>…..</coche>. Marca esta dentro
del tag coche. El XML provee muchas otras posibilidades como puede ser que las
etiquetas tengan atributos (<coche color="rojo">..</coche>), pero no nos
detendremos en ellas ya que la idea es simplemente ofrecer los conceptos básicos para

Manual de Web Services en PHP

3



conocer de que se trata el mundo de los Web Services.


SOAP. Simple Object Access Protocol

Es un protocolo que permite la comunicación entre aplicaciones a través de mensajes
por medio de Internet. Es independiente de la plataforma, y del lenguaje. Esta basado
en XML y es la base principal de los Web Services. Los mensajes SOAP son documento
XML propiamente dicho, pero esto lo veremos más adelante cuando veamos un
ejemplo de un mensaje SOAP.

Veamos como es la estructura básica del protocolo y la correspondiente explicación:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
Soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>

Explicación del código anterior:

<?xml version="1.0"?>

Como podemos ver en esta linea SOAP es un documento XML, y como tal, debe comenzar con el tag
<?xml….?> y la versión correspondiente.

<soap:Envelope

Aquí se indica que comienza el envelope (sobre) del mensaje

xmlns:soap = "http://www.w3.org/2001/12/soap-envelope"

Un mensaje SOAP debe contener siempre un elemento envelope asociado con el namespace (espacio de
nombres) http://www.w3.org/2001/12/soap-envelope

Soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

En esta línea lo que se hace es indicar donde se encuentran definidos los tipos de datos utilizados en el
documento.

<soap:Header>

Esta línea indica el comienzo del Header (encabezado). En esta sección se incluye información específica del
mensaje, como puede ser la autenticación.

</soap:Header>

Como todo documento XML los tags que son abiertos deben ser cerrados, esta línea indica la finalización del
Header (encabezado).

<soap:Body>

Aquí comienza el cuerpo del mensaje, en esta sección se incorpora toda la información necesaria para el
nodo final. Por ejemplo, los parámetros para la ejecución, o la respuesta a una petición.

<soap:Fault>

Cualquier tipo de fallo que se produzca será notificado en esta sección. La cual esta contenida dentro del
cuerpo del mensaje.

</soap:Fault>

Cierre de la sección Fault.

Manual de Web Services en PHP



</soap:Body>

Indica el final del cuerpo del mensaje.

</soap:Envelope>

Fin del mensaje SOAP.



WSDL y UDDI

4

WSDL - Web Services Description Language

Es un protocolo basado en XML que describe los accesos al Web Service. Podriamos
decir que es el manual de operación del web service, porque nos indica cuales son las
interfaces que provee el Servicio web y los tipos de datos necesarios para la utilización
del mismo.

Veamos un ejemplo de un documento WSDL:

<?xml version="1.0">
<definitions>
<types>
...
</types>
<message>
...
</message>
<portType>

...
</portType>
<binding>
...
</binding>
</definitions>

Explicación del código anterior:

<?xml version="1.0"> Este es otro documento XML, es por esto que debe comenzar con el tag <?xml .. ?>

<definitions>

Comienzo del documento, este tag agrupa a todos los demás.

<types>

</types>

<message>

Se definen los tipos de datos utilizados en el Web Service.

Fin de la definición de tipos.

Se definen los métodos y parámetros para realizar la operación. Cada message
puede consistir en una o más partes (parámetros).

</message>

Fin de la definición de los parámetros.

<portType>

Esta sección es la más importante, ya que se definen las operaciones que pueden
ser realizadas, y los mensajes que involucran (por ejemplo el mensaje de petición y
el de respuesta).

</portType>

Fin de la definición de las operaciones y mensajes.

<binding>

Se definen el formato del mensaje y detalles del protocolo para cada portType.

</binding>

Fin de la definición del formato del mensaje y detalles del protocolo para cada
PortType.

Manual de Web Services en PHP



</definitions>

UDDI - Universal Discovery Description and Integration

Fin del documento WSDL

5

Es un modelo de directorios para Web Services. Es una especificación para mantener
directorios estandarizados de información acerca de los Web Services, sus
capacidades, ubicación, y requerimientos en un formato reconocido universalmente.
UDDI utiliza WSDL para describir las interfaces de los Web Services.
Es un lugar en el cual podemos buscar cuales son los Servicios web disponibles, una
especie de directorio en el cual podemos encontrar los Web Services publicados y
publicar los Web Services que desarrollemos.

http://soapclient.com/uddisearch.html
http://uddi.org/find.html



Historia de los Web Services

Los Servicios Web surgieron ante una necesidad de estandarizar la comunicación entre
distintas plataformas (PC, Mainframe, Mac, etc.) y lenguajes de programación (PHP,
C#, Java, etc.).

Anteriormente se habían realizado intentos de crear estándares pero fracasaron o no
  • Links de descarga
http://lwp-l.com/pdf11928

Comentarios de: Web services con PHP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad