Implementando Servicios web en PHP+Mysql
Soap
SOAP (Simple Object Access Protocol, Protocolo de acceso a objetos simple) es unprotocolo basado en XML que consiste de tres partes: la primera define cuál es el mensaje ycómo procesarlo, la segunda es un sistema de reglas de codificación para expresar tipos dedatos definidos y una tercera parte para representar respuestas de llamadas por parte deprocedimientos remotos.
La diferencia básica entre los dos protocolos anteriores es su complejidad. XML-RPC estádiseñado para ser sencillo, mientras que SOAP está hecho con la idea de ofrecer un soportecompleto de todo tipo de servicio web.
Por otro lado, también es conveniente describir qué es WSDL. Pues bien, WSDL es un formatoXML que describe los servicios de red como un conjunto de puntos finales que procesanmensajes contenedores de información orientada tanto a documentos como a procedimientos.Las operaciones y los mensajes se describen de manera abstracta y después se enlazan a unprotocolo de red y a un formato de mensaje concreto para definir un punto final de red.
Fuente:http://es.scribd.com/doc/16175477/Implementando-Servicios-Web-Con-Php
Desarrollo
Para realizar a punta de código , los servicios web son un poquito complejos porque debes conocer muy bien su estructura pero afortunadamente hay una librería llamada NuSoap, que hace ese trabajo por nosotros.Pero, aún así, se debe meter mano para obtener mejores resultados.
Hace unos 6 meses, yo quería realizar un servicio web para una aplicación; que tomaba los datos de una base de datos en Mysql y lo debía poner disponibles para los usuarios que desean consumirla.
Pero leyendo algunos sitios , concluí , que lo mejor era optar por la librería Nusoap.Pues , es así, como comencé a probar esta librería.Tuve algunos problemas pero los solucione.
En el proyecto , adjunto ejemplos desde los más básicos hasta los mas complejos.
Para lograr la implementación del servicio web(web service) , he utilizado la librería NuSOAP que viene adjunta al proyecto que posteo.
<?php include('lib/nusoap.php'); $server = new soap_server; $ns="http://localhost:88/Webserivce/"; $server->configureWSDL('Servicios',$ns); $server->wsdl->schematargetnamespace = $ns; $server->wsdl->addComplexType( 'ArregloDeEstructuras', 'complexType', 'array', 'sequence', 'http://schemas.xmlsoap.org/soap/encoding/:Array', array(), array(array('ref' => 'http://schemas.xmlsoap.org/soap/encoding/:arrayType', 'wsdl:arrayType' => 'tns:Estructura[]') ), 'tns:Estructura' ); $server->register('consultaPersonas', array('$param' => 'xsd:string'), array('return'=>'tns:ArregloDeEstructuras'), $ns); function consultaPersonas($param) { $arreglo = array(); $arreglo[] = array('Nombre'=>"Juan", 'Apellidos'=>"Torres", 'Edad'=>18); $arreglo[] = array('Nombre'=>"Teresa", 'Apellidos'=>"Jiménez Sánchez", 'Edad'=>19); $arreglo[] = array('Nombre'=>"Efraín", 'Apellidos'=>"Ovalles López", 'Edad'=>22); return $arreglo; } // Use the request to (try to) invoke the service $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?>
Y es así, como se realiza un servicio web usando la librería NuSoap.
Descargar ejemplo
No olvides comentar en forma de agradecimiento.