Hoje consegui um pouco de tempo para dar uma pesquisada e aprender mais um pouco sobre webservices. Resolvi ver como funciona o suporte nativo a SOAP embutido no PHP5. Para isso, pensei em reescrever o código deste exemplo de cliente PHP que tinha escrito um tempo atrás.
O primeiro passo, lógico, foi instalar o PHP5 no meu Ubuntu. Nenhum mistério até aqui, é o mesmo procedimento que venho fazendo desde o PHP3, apenas com a adição da opção –enable-soap no na execução do configure.
Depois de uma pesquisada no http://www.php.net/manual/ consegui fazer algums ensaios. Existe a opção de instanciar a classe SoapClient passando os parâmetros, desta forma:
$client = new SoapClient(null, array('location' => "http://localhost/soap.php", 'uri' => "http://test-uri/", 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL));
indicando o servidor e a uri onde o serviço está instalado, mas depois de várias tentativas não obtive sucesso. A construção que parece ser a oficial e mais correta é :
$client = new SoapClient("some.wsdl");
Então precisava criar o arquivo wsdl contendo a descrição e os detalhes do serviço. Como gerar algo deste gênero não é uma coisa trivial e muito menos produtiva pesquisei algo que me ajude neste sentido. Nestas pesquisas acabei encontrando este artigo que explica a utilização do Axis.
Usando as palavras do autor:
[…]Axis é um conjunto de ferramentas para desenvolver WebServices. Dentre suas principais funcionalidades estão: