Gerando Web Services PHP com NuSoap
Este artigo aborda a geração de Web Services em PHP utilizado a biblioteca 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?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 biblioteda NuSoap.