Este documento apresenta uma palestra sobre criação e consumo de web services RESTful com o framework CakePHP. A palestra aborda como criar uma aplicação RESTful no CakePHP, consumir o web service criado e desenvolver um cliente para a API do Twitter.
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Criando e consumindo Web Services (REST) com o CakePHP
1. 1º Encontro de CakePHP em São Paulo
Criando e consumindo web services
(REST) com o framework CakePHP
2. 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?
3. 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?
4. 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.
5. 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?
6. Motivação
Divulgar o framework CakePHP
Retribuir à comunidade de software livre
Combater o código 'espaguete'
Mostrar que programar pode ser divertido!
7. 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?
8. 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
9. 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?
10. 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)
11. Criando uma aplicação RESTful no CakePHP
Router::mapResources('posts');
Router::parseExtensions('xml');
con g/routes.php
12. Criando uma aplicação RESTful no CakePHP
<?php
class 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
13. Criando uma aplicação RESTful no CakePHP
<posts>
<?php echo $xml->serialize($posts); ?>
</posts>
views/posts/xml/index.ctp
14. 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?
15. 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
16. Consumindo o web service da aplicação criada
<?php
App::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
17. 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?
18. 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
19. Criando um cliente para o Twitter
<?php
App::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
20. 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
21. 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
22. 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?
23. 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/
24. 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?
25. Agradecimentos
Aos organizadores do 1º Encontro de CakePHP
de São Paulo
Ao CakePHP por facilitar a minha vida ;)
À comunidade pela presença
26. 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?