1º Encontro de CakePHP em São Paulo
Criando e consumindo web services (REST) com o framework CakePHP
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Apresentação
Carlos Pires (Cadu) é bacharel em ciência da computação pela Universidade FUMEC. Desenvolve e é apaixonado pela web e por software livre desde 1999.
Natural de Belo Horizonte, trabalhou com Java(JEE) por mais de 6 anos em diversas empresas da capital mineira. Ultimamente tem se dedicado ao CakePHP e à jQuery.
Quando não está andando de bike, está estudando línguas (inglês e espanhol), curtindo um samba de raíz ou tomando uma cervejinha com os amigos.
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Motivação
Divulgar o framework CakePHP Retribuir à comunidade de software livre Combater o código 'espaguete' Mostrar que programar pode ser divertido!
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
O que é um web service?
“Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes.”
Fonte: http://pt.wikipedia.org/wiki/Web_service
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Criando uma aplicação RESTful no CakePHP
Ativar as rotas para o acesso REST (con!g/routes.php)
Utilizar o component RequestHandler e alterar os métodos na classe de controle
Criar as páginas da visão (views/controller/xml)
Criando uma aplicação RESTful no CakePHP
Router::mapResources('posts');
Router::parseExtensions('xml');
con!g/routes.php
Criando uma aplicação RESTful no CakePHP
<?phpclass PostsController extends AppController {
var $name = 'Posts';var $helpers = array('Html', 'Form');var $components = array('RequestHandler');
function index() { $this->Post->recursive = 0; if ($this->RequestHandler->isXml()) { $this->set('posts', $this->Post-
>find('all',array('fields'=>array('titulo')))); } else { $this->set('posts', $this->paginate()); }}
?>
controllers/posts_controller.php
Criando uma aplicação RESTful no CakePHP
<posts><?php echo $xml->serialize($posts); ?>
</posts>
views/posts/xml/index.ctp
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Consumindo o web service da aplicação criada
Criar os métodos na classe de controle para acessar o web service
Criar as páginas da visão para exibir o conteúdo
Consumindo o web service da aplicação criada
<?phpApp::import('Core',array('HttpSocket','Xml'));
class WsreadersController extends AppController {
var $uses = null;
function index() { $this->autoRender=false; $httpSocket = new HttpSocket(); $url = 'http://127.0.0.1/2kmwebservice/posts/index.xml'; $retorno = $httpSocket->get($url); $xml = new Xml($retorno); pr($xml->toArray());}
}?>
controllers/wsreaders_controller.php
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Criando um cliente para o Twitter
Criar os métodos na classe de controle para acessar o web service do Twitter
Criar as páginas da visão para interagir com o serviço
Criando um cliente para o Twitter
<?phpApp::import('Core',array('HttpSocket','Xml'));
class WsreadersController extends AppController {
var $uses = null;
function twitter(){ $this->autoRender=false; $HttpSocket = new HttpSocket(); $header = array('auth' => array( 'method' => 'Basic', 'user' => 'usuario', 'pass' => 'senha' )); $url = "http://twitter.com/account/verify_credentials.xml"; $resposta = $HttpSocket->get($url, null, $header); $xml = new XML($resposta); $array = $xml->toArray(); pr($array);}
...
controllers/wsreaders_controller.php
Criando um cliente para o Twitter
...
function updatetwitter(){ if (!empty($this->data)) {
$this->autoRender=false;$HttpSocket = new HttpSocket();$header = array('auth' => array( 'method' => 'Basic', 'user' => 'cursocake', 'pass' => 'cursocake'));$url = "http://twitter.com/statuses/update.xml"; $status = array('status' => $this->data['Wsreader']['status']);$resposta =$HttpSocket->post($url, $status, $header); $xml = new XML($resposta);$array = $xml->toArray();pr($array);}
}}
?>
controllers/wsreaders_controller.php
Criando um cliente para o Twitter
<div class="posts form"><?php echo $form->create('Wsreader',array('action'=>'updatetwitter'));?>
<fieldset> <legend><?php __('Atualizar status no twitter');?></legend>
<?php echo $form->input('status');?></fieldset>
<?php echo $form->end('Submit');?></div>
views/wsreaders/updatetwitter.ctp
Agenda
Apresentação
Motivação
O que é um web service ?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Referências
Site o!cial no Brasil do CakePHP - http://www.cakephp.com.br
Manual do CakePHP em português - http://book.cakephp.org/pt
Artigos e tutoriais - http://bakery.cakephp.org/
Grupo do CakePHP em português - http://groups.google.com/group/cake-php-pt/
Agenda
Apresentação
Motivação
O que é um web service ?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?
Agradecimentos
Aos organizadores do 1º Encontro de CakePHP de São Paulo
Ao CakePHP por facilitar a minha vida ;) À comunidade pela presença
Agenda
Apresentação
Motivação
O que é um web service?
Criando uma aplicação RESTful no CakePHP
Consumindo o web service da aplicação criada
Criando um cliente para o twitter
Referências
Agradecimentos
Perguntas?