A construção de WebServices RESTful está surgindo como uma alternativa para a integração de sistemas independente de plataforma. Além de ser mais simples e leve que o SOAP, possui a capacidade de transmitir dados diretamente através de HTTP.
Nesse post não pretendo explicar o que é, e todos os princípios da arquitetura REST Transferência de Estado Representacional (Representational State Transfer), e quem não conhece e estiver a fim de aprender... esta disponível a própria tese do Roy Fielding sobre o tema, e uma artigo Wikipédia.
O RESTful foca em URIs e nos detalhes do protocolo HTTP para se beneficiar de seus recursos, sem a necessidade de passar a ação implicitamente na URL ex: Para que eu vou implicitar a ação Edit na minha url http://meusite/usuario/666/edit , se com o recursos do HTTP posso fazer assim: PUT http//meusite.com/usuario/666.
Assim como no Java existe JERSEY que é a implementação de referencia do JAX-RS (API RESTful web Service) , no PHP existe a simples e direta Respect / Rest disponível aqui no github.
Agora vamos faze de forma rápida e simples um exemplos do Respect\Rest usando os métodos HTTP (GET,POST,PUT,DELETE) para construir uma app RESTFul.
require_once 'bootstrap.php'; require_once 'Respect/Rest/Router.php'; require_once 'Respect/Rest/Request.php'; use Respect\Rest\ Router;
$router = new Router('/index.php/');
/** * get * */ $router->get('/meusite/app/login/*/*', function($login, $senha) { if ($login == "rectec" && $senha == "123") { return "Usuario=> $login Senha: " . md5($senha); } else { return "Você não existe!!!"; } }); $router->get('/meusite/usuarios', function() { return 'Listagem de usuarios'; })->accept( array( 'text/html' => function($data) { return 'usuarios em HTML'; }, 'application/json' => function($data) { return 'usuarios em JSON'; } ) ); /** * post * */ $router->post('/meusite/usuario/', function() { $data_back = json_decode(file_get_contents('php://input')); return 'Cadastrando: ' . json_encode($data_back); }); /** * Alterar * */ $router->put('/meusite/usuario/*', function($id = null) { return 'Alterando: ' . $id; }); /** * Deletar * */ $router->delete('/meusite/usuario/*', function($id = null) { return 'Deletando: ' . $id; });
Caso queira representar a saída com HTML, JSON, XML, JPG, etc, use o Cabeçalho Accept! Para testar vc pode usar um debug para RESTful web service chamado RESTClient no seu FireFox!
Desculpe, mas estou tendo uma certa dificuldade em usar o respect.
ResponderExcluirÉ necessário apenas dar os includes (require), igual a você fez no exemplo ou eu necessito de instalar algo no servidor ?
Opa! Basta colocar a biblioteca (do repositorio http://github.com/Respect/Rest) e configurar o htaccess (se não me engano no link tem um exemplo)
Excluir