Criando e consumindo Web Services (REST) com o CakePHP

Post on 05-Dec-2014

6.922 views 0 download

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

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?

Perguntas?

Carlos Pires -  E-mail: carlos.pires@2km.com.br -  Twitter: @cadu

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