Consumindo webservice em PHP
Consumindo webservice em PHP
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 comunicação entre sistemas heterogêneos
de maneira distribuída. Na figura
abaixo, temos um exemplo de comunicação 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 Publicação
WSDL (Web Service Definition Language): Descrição
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 função, variáveis de entrada, saída, tipo dos dados, etc. Estes dados são salvos na UDDI, onde você encontra também a URL para a conexão destes serviços.
Passos 03, 04, 05
e 06: A máquina acessa o UDDI para buscar informações sobre um determinado serviço, através do seu WSDL ela tem acesso ao nome da função e as variáveis de entrada e saída com seus respectivos tipos de dados. Após é feita a comunicação através do protocolo SOAP, utilizando-se o XML como mensagem.
Bom, para mais informações, 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 módulo SOAP Extension, uma nova extensão disponível a partir da versão 5 do PHP, porém muito limitada e, outra é a utilização de uma API desenvolvida em PHP, denominada de NuSOAP. Sua principal vantagem é o seu suporte embutido ao WSDL.
Obs.: Não vou descrever toda a teoria novamente, então, caso não entenda algum passo mencionado abaixo, favor consultar os artigos anteriores. Os arquivos fontes estão
no final do artigo.
01. Utilizando o módulo SOAP Extension
do PHP
Onde baixar?
http://phpsoaptoolkit.sourceforge.net/phpsoap/
Configuração
Entre no php.ini e adicione a seguinte linha:
extension=php_soap.dll
Códigos
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/
Configuração
Basta incluir no código 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 não 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 função (hello,
no nosso caso), você tem acesso às informações
preenchidas, como parâmetro de entrada, saída, url
de acesso, etc.
Outra vantagem do nuSOAP, já citada no
início, é a geração do documento
WSDL, como visto abaixo.
Dica:
Caso queiram visualizar o conteúdo das
mensagens, adicionem o código abaixo no final do cliente.php.
echo ‘<h2>Requisição</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 conteúdo desse artigo tenha
sido útil. Nos próximos artigos falaremos de Integração
de PHP/Java e Segurança em Web Services.
Grande abraço!
Comentários
Postar um comentário