Você está na página 1de 9

Construindo Web Services em PHP

tera-feira, 15/08/2006 s 12h08, por Mauricio Reckziegel Ol pessoal. Hoje iremos criar nosso primeiro Web Service em PHP, e de duas maneiras. Vamos revisar tudo que vimos at agora de uma maneira bem resumida, pois creio que nem todos leram os artigos anteriores, risos. Um dos principais objetivos dos Web Services fazer a comunicao entre sistemas heterogneos de maneira distribuda. Na figura abaixo, temos um exemplo de comunicao entre dois servidores, um deles, dotado dos seguintes apetrechos (Windows, ISS, ASP) e outro com (Linux, Apache e PHP).

UDDI (Universal Description, Discovery and Integration): Descoberta e Publicao WSDL (Web Service Definition Language): Descrio SOAP (Simple Object Access Protocol): Mensagens Passos 01 e 02: Primeiramente, gera-se o arquivo WSDL para descrever um Web Service, este arquivo geralmente gerado no formato XML. Nele se encontram o nome da funo, variveis de entrada, sada, tipo dos dados, etc. Estes dados so salvos na UDDI, onde voc encontra tambm a URL para a conexo destes servios. Passos 03, 04, 05 e 06: A mquina acessa o UDDI para buscar informaes sobre um determinado servio, atravs do seu WSDL ela tem acesso ao nome da funo e as variveis de entrada e sada com seus respectivos tipos de dados. Aps feita a comunicao atravs do protocolo SOAP, utilizando-se o XML como mensagem.

Bom, para mais informaes, j sabem, os demais artigos tratam sobre cada tecnologia. Vamos ao que interessa. Existem duas maneiras mais utilizadas no PHP para se criar um Web Service, uma delas utilizando-se do mdulo SOAP Extension, uma nova extenso disponvel a partir da verso 5 do PHP, porm muito limitada e, outra a utilizao de uma API desenvolvida em PHP, denominada de NuSOAP. Sua principal vantagem o seu suporte embutido ao WSDL. Obs.: No vou descrever toda a teoria novamente, ento, caso no entenda algum passo mencionado abaixo, favor consultar os artigos anteriores. Os arquivos fontes esto no final do artigo. 01. Utilizando o mdulo SOAP Extension do PHP Onde baixar? http://phpsoaptoolkit.sourceforge.net/phpsoap/ Configurao Entre no php.ini e adicione a seguinte linha: extension=php_soap.dll Cdigos Como exemplo, vamos criar um Hello Name. server.php

cliente.php

Acessando cliente.php Resultado:

02. Utilizando a classe NuSOAP Onde baixar? http://sourceforge.net/projects/nusoap/ Configurao Basta incluir no cdigo fonte. (include caminho/nusoap.php;) Lembre-se! . Comentar a linha ;extension=php_soap.dll no php.ini. Caso o php_soap.dll esteja ativo a classe nuSOAP no ir funcionar.

. Reiniciar o Apache. Vamos ao que interessa server.php

cliente.php

Acessando o cliente.php Resultado:

Gerando um WSDL com o nuSOAP

server2.php

cliente2.php

Acessando o WSDL no NuSOAP Adicione (?wsdl) no final do arquivo Server.php (http://caminho/server2.php?wsdl) , ou simplesmente acesso no http://caminho/server2.php e clique em WSDL.

Ao clicar no nome da funo (hello, no nosso caso), voc tem acesso s informaes preenchidas, como parmetro de entrada, sada, url de acesso, etc.

Outra vantagem do nuSOAP, j citada no incio, a gerao do documento WSDL, como visto abaixo.

Dica: Caso queiram visualizar o contedo das mensagens, adicionem o cdigo abaixo no final do cliente.php. echo <h2>Requisio</h2>; echo <pre>.htmlspecialchars($client->request).</pre>; echo <h2>Resposta</h2>; echo <pre>.htmlspecialchars($client->response).</pre>; // Exibe mensagens para debug echo <h2>Debug</h2>; echo <pre>.htmlspecialchars($client->debug_str).</pre>; Download dos fontes: aqui. Espero que o contedo desse artigo tenha sido til. Nos prximos artigos falaremos de Integrao de PHP/Java e Segurana em Web Services.

Grande abrao!