Gerando Web Services PHP com NuSoap

Este artigo aborda a geração de Web Services em PHP utilizado a biblioteca NuSoap.

NuSoap

Esta biblioteca é uma alternativa ao módulo SOAP Extension, nativo do PHP e oferecer suporte à criação automática do WSDL.

Framework NuSoap disponível em: http://sourceforge.net/projects/nusoap/

Segue um exemplo de utilização do Framework.

Lado Servidor da Aplicação:

ws-service.php
<?php
  require_once "lib/nusoap.php";
  
  $soap = new soap_server;
  
  $soap->configureWSDL('WS-WebCodeFree', 
  										 'http://localhost/ws-webcodefree/');
  
  $soap->wsdl->schemaTargetNamespace 
  							= 'http://soapinterop.org/xsd/';

	$soap->register(
		'info',
		array(),		
		array('x' => 'xsd:string'),
		'http://soapinterop.org/'
	);
	
	$soap->register(
		'post_java',
		array(),		
		array('x' => 'xsd:string'),
		'http://soapinterop.org/'
	);
	
	$soap->register(
		'post_php',
		array(),		
		array('x' => 'xsd:string'),
		'http://soapinterop.org/'
	);
	
	$soap->register(
		'login_user',
		array('login' => 'xsd:string','pass' => 'xsd:int'),		
		array('x' => 'xsd:string'),
		'http://soapinterop.org/'
	);
  	
$soap->service(isset($HTTP_RAW_POST_DATA) ? 
							$HTTP_RAW_POST_DATA : '');
 
function info(){
	return "WebCodeFree - Desenvolvimento Web.";
}

function post_java(){
	return "Em Breve Acesso a Postagens Java Via Serviço";
}

function post_php(){
	return "Em Breve Acesso a Postagens PHP Via Serviço";
}

function login_user($login, $senha){
	return "Seja Bem Vindo Usuário ". $login . " !!!";
}
?>
  • Na linha 2 realizamos a importação da biblioteca do NuSoap;

  • Na linha 4 instanciamos uma objeto do tipo soap_server;

  • Na linha 6 configuramos a instância do documento WSDL de nossa aplicação servidora;

  • Na linha 8 definimos o Schema do documento WSDL;

  • Entre as linhas 10 a 36 registramos os métodos de nosso web service;

  • Na linha 38 definimo o uso do request para invocar o serviço;

  • Entre as linhas 40 a 54 implementamos os métodos de nosso web service.

Após a criação do objeto soap_server, geração do wsdl e registro e implementação dos métodos conseguimos gerar web service.

Lado Cliente da Aplicação:

ws-client.php
<?php
	include "lib/nusoap.php";
	
	$client =  new SoapClient('http://localhost/web-service/ws-webcodefree.php?wsdl');
	
	$result1 = $client->call('info');
	
	$result2 = $client->call('post_java');
	
	$result3 = $client->call('post_php');
	
	$result4 = $client->call('login_user', array('Paulo',12));
	
	echo $result1."<br>";
	echo $result2."<br>";
	echo $result3."<br>";
	echo $result4."<br>";
?>
  • Na linha 2 realizamos a importação da biblioteca do NuSoap;

  • Na linha 4 criamos um objeto Soap Client baseado no wsdl do Servidor;

  • Por fim realizamos a chamadas aos métodos e exibimos o possíveis resultados.

E com isso realizamos a publicação e consumo de um web service em PHP baseado na biblioteca NuSoap.

Last updated