Criando e consumindo Web Services (REST) com o CakePHP

27
1º Encontro de CakePHP em São Paulo Criando e consumindo web services (REST) com o framework CakePHP

description

Slides da palestra ministrada por Carlos Pires no I Encontro de CakePHP de São Paulo

Transcript of Criando e consumindo Web Services (REST) com o CakePHP

Page 1: Criando e consumindo Web Services (REST) com o CakePHP

1º Encontro de CakePHP em São Paulo

Criando e consumindo web services (REST) com o framework CakePHP

Page 2: Criando e consumindo Web Services (REST) com o 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?

Page 3: Criando e consumindo Web Services (REST) com o 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?

Page 4: Criando e consumindo Web Services (REST) com o CakePHP

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.

Page 5: Criando e consumindo Web Services (REST) com o 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?

Page 6: Criando e consumindo Web Services (REST) com o CakePHP

Motivação

  Divulgar o framework CakePHP   Retribuir à comunidade de software livre   Combater o código 'espaguete'   Mostrar que programar pode ser divertido!

Page 7: Criando e consumindo Web Services (REST) com o 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?

Page 8: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 9: Criando e consumindo Web Services (REST) com o 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?

Page 10: Criando e consumindo Web Services (REST) com o CakePHP

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)

Page 11: Criando e consumindo Web Services (REST) com o CakePHP

Criando uma aplicação RESTful no CakePHP

Router::mapResources('posts');

Router::parseExtensions('xml');

con!g/routes.php

Page 12: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 13: Criando e consumindo Web Services (REST) com o CakePHP

Criando uma aplicação RESTful no CakePHP

<posts><?php echo $xml->serialize($posts); ?>

</posts>

views/posts/xml/index.ctp

Page 14: Criando e consumindo Web Services (REST) com o 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?

Page 15: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 16: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 17: Criando e consumindo Web Services (REST) com o 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?

Page 18: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 19: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 20: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 21: Criando e consumindo Web Services (REST) com o CakePHP

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

Page 22: Criando e consumindo Web Services (REST) com o 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?

Page 23: Criando e consumindo Web Services (REST) com o CakePHP

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/

Page 24: Criando e consumindo Web Services (REST) com o 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?

Page 25: Criando e consumindo Web Services (REST) com o CakePHP

Agradecimentos

  Aos organizadores do 1º Encontro de CakePHP de São Paulo

  Ao CakePHP por facilitar a minha vida ;)   À comunidade pela presença

Page 26: Criando e consumindo Web Services (REST) com o 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?

Page 27: Criando e consumindo Web Services (REST) com o CakePHP

Perguntas?

Carlos Pires -  E-mail: [email protected] -  Twitter: @cadu

www.2km.com.br - Twitter: @2km