Web Services é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Os Web Services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria "linguagem", que é traduzida para uma linguagem universal, o formato XML e padrões de nomenclatura SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language) e UDDI (Universal Description, Discovery e Integration). Para as empresas, os Web Services podem trazer agilidade para os processos e eficiência na comunicação entre cadeias de produção ou de logística.
Toda e qualquer comunicação entre sistemas passa a ser dinâmica e principalmente segura, pois não há intervenção humana.( Veja o conceito no Wikipédia)

O diagrama acima é o esquema mais simples que pode ajudar a visualizar Web Services, e mostra como aplicações remotas podem interagir umas com as outras usando Web Services, o protocolo usado para esta interação remota é SOAP.
SOAP é um protocolo leve para a troca de informações em um ambiente distribuído. É um protocolo baseado em XML. O aspecto mais importante do SOAP é a sua simplicidade e extensibilidade. Este protocolo consiste basicamente em três partes:
- É um Framework que descreve o que contem em uma mensagem e como processar essa mensagem.
- É um conjunto de regras e padrões de código.
- Trata-se de uma convenção para representar chamadas a procedimentos remotos (requisições e respostas).
PHP e Web Services
PHP é uma das mais utilizadas linguagens de programação. É basicamente uma linguagem procedural , mas que também pode e é muito utilizada com orientação a objetos. Para quem não conhece é uma linguagem similar ao Perl, C, Java, etc. facilmente incorporado em HTML, o que torna o desenvolvimento Web utilizando PHP muito fácil.
Algumas das características do PHP que reforça a sua capacidade de desenvolver Web Services estão listados abaixo:
- Compatibilidade com programação orientada a objetos.
- Suporte a XML.
- Possui a extenção CURL (Client URL Library) que permite a comunicação entre diversos protocolos tais como HTTP, HTTPS, FTP, Telnet, LDAP.
- A característica mais importante para a implementação de Web Services é devido ser Open Souce.
PHP e Web Services usando NuSoap
Como já descrevi os conceitos fundamentais e protocolos sobre Web Services e também do PHP e suas funcionalidades agora vamos para o nosso exemplo prático.
NuSoap é um grupo de classes do PHP que nos possibilita troca de mensagens SOAP sobre HTTP. O download da biblioteca nusoap.php pode ser feito clicando aqui. Esta é uma biblioteca Open Source, licenciado sob GNU LGPL. Depois de baixar essa biblioteca você pode coloca-la onde melhor te atenda, só não se esqueça o caminho do arquivo (Path) pois terá que fazer um includ dessa biblioteca no seu código PHP. Minha sugestão é que seja feito o óbvio e mantenha esse arquivo no mesmo lugar que você tenha outras bibliotecas ou ao menos dentro da pasta do seu projeto.
No seu código PHP faça o includ da classe da seguinte forma:
Mais uma vez, esteja atento ao Path(ou caminho) do nusoap.php para não haver problemas no include. Caso esteja errado o código vai gerar um alerta mas vai continuar a processar o resto do código.
Sinta-se a vontade em utilizar quando necessário, outras funções como:
- require()
- require_once()
- Include_once()
Para maiores detalhes destas funções básicas do PHP acessem o Manual do PHP
Criando um cliente SOAP com PHP
O código abaixo é um simples exemplo de cliente que envia a requisição para o servidor remoto para validar uma String, que é passada como parâmetro para o servidor.
require('nusoap.php');
$string = 'Olá Mundo!';
$stringArray = array($string);
$s = new SoapClient('http://localhost/seu_projeto/validateString.php');
$result = call('validateString',$stringArray);
if(!$error = $s->getError()){
echo 'String: '.$result;
}else{
echo 'Error: '.$error;
}
?>
Agora vamos percorrer o código começando pela inclusão da classe:
A seguir o código mostra como o cliente envia os dados para o servidor para validar se é uma String:
Cria um vetor passando a variável como parâmetro
Uma instância do cliente SOAP deve ser criada, o cliente e o servidor neste caso estão na mesma máquina, caso não esteja trabalhando Localhost o caminho do validateString.php deve ser fornecido ao cliente SOAP
O método call fala para o cliente SOAP qual serviço quer acessar, e passa o vetor de String para o servidor. A variável $result armazena a resposta do servidor.
O método getError() deve ser utilizado, pois se algum erro acontecer esse método retorna a descrição do erro através de uma String, se não retorna Falso, no nosso caso estamos mostrando o resultado em caso de sucesso, senão mostra o detalhe do erro:
echo 'String: '.$result;
}else{
echo 'Error: '.$error;
}
Agora vamos criar um simples exemplo de servidor SOAP com PHP
require('nusoap.php');
$s = new soap_server;
$s->register('validateString');
function validateString($stringValue) {
if(is_string($stringValue)) {
return $stringValue;
}else {
return new soap_fault('Client',''.'This is not a valid string.');
}
}
$s->service($HTTP_RAW_POST_DATA);
?>
Novamente vamos percorrer o código, mas dessa vês vamos iniciar a explicação da instância do servidor SOAP usando a classe soap_server
Precisamos registrar o objeto no servidor, esse registro é necessário para permitir que a função seja aceita em uma localização remota
Temos também uma função que testa se o parâmetro passado é uma String valida ou não. Se a String que foi passada for válida, então o retorno será a própria String, caso contrário ela irá retornar o erro usando a classe soap_fault
if(is_string($stringValue)) {
return $stringValue;
}else {
return new soap_fault('Client',''.'This is not a valid string.');
}
}
Finalmente o método de serviço que passa a receber dados a partir do cliente remoto para o servidor SOAP. Este método recebe o pedido e faz a chamada do método adequado
Bom pessoal de forma resumida é isso, este é um pequeno exemplo de como desenvolver aplicações Web Servives com PHP utilizando a biblioteca NuSoap.
O importante é perceber que aplicações robustas podem ser desenvolvidas com esta biblioteca e garantir que exista interoperabilidade com Web Services.
Comentários recentes
7 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás
43 semanas 1 dia atrás