SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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


<?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
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

<?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
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

<?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
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

Weitere ähnliche Inhalte

Was ist angesagt?

A5 TEORIAS DEL ORIGEN DE LA VIDA.pptx
A5 TEORIAS DEL ORIGEN DE LA VIDA.pptxA5 TEORIAS DEL ORIGEN DE LA VIDA.pptx
A5 TEORIAS DEL ORIGEN DE LA VIDA.pptxCelinaFranco7
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The FutureTracy Lee
 
Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHPelliando dias
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewKris Rice
 
React, Flux y React native
React, Flux y React nativeReact, Flux y React native
React, Flux y React nativeEduard Tomàs
 
Introduction to back-end
Introduction to back-endIntroduction to back-end
Introduction to back-endMosaab Ehab
 

Was ist angesagt? (7)

A5 TEORIAS DEL ORIGEN DE LA VIDA.pptx
A5 TEORIAS DEL ORIGEN DE LA VIDA.pptxA5 TEORIAS DEL ORIGEN DE LA VIDA.pptx
A5 TEORIAS DEL ORIGEN DE LA VIDA.pptx
 
RxJS - The Basics & The Future
RxJS - The Basics & The FutureRxJS - The Basics & The Future
RxJS - The Basics & The Future
 
Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHP
 
React Native Firebase
React Native FirebaseReact Native Firebase
React Native Firebase
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
 
React, Flux y React native
React, Flux y React nativeReact, Flux y React native
React, Flux y React native
 
Introduction to back-end
Introduction to back-endIntroduction to back-end
Introduction to back-end
 

Andere mochten auch

Criando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPCriando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPRenan Gonçalves
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONMarcio Junior Vieira
 
RESTful Web Development with CakePHP
RESTful Web Development with CakePHPRESTful Web Development with CakePHP
RESTful Web Development with CakePHPAndru Weir
 
APIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex PiazAPIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex PiaziMasters
 
Autenticação e Autorização - MercadoLivre Developers Conference
Autenticação e Autorização - MercadoLivre Developers ConferenceAutenticação e Autorização - MercadoLivre Developers Conference
Autenticação e Autorização - MercadoLivre Developers ConferenceWesley Nascimento
 
Recursive in CakePHP
Recursive in CakePHPRecursive in CakePHP
Recursive in CakePHPKetan Patel
 
Customize CakePHP bake
Customize CakePHP bakeCustomize CakePHP bake
Customize CakePHP bakeKazuyuki Aoki
 
CakePHP mistakes made
CakePHP mistakes madeCakePHP mistakes made
CakePHP mistakes mademarkstory
 
9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resources9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resourcesiScripts
 
Top 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHPTop 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHPKetan Patel
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itstomicx
 
Road to CakePHP 3.0
Road to CakePHP 3.0Road to CakePHP 3.0
Road to CakePHP 3.0markstory
 

Andere mochten auch (20)

Criando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPCriando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHP
 
REST API with CakePHP
REST API with CakePHPREST API with CakePHP
REST API with CakePHP
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
RESTful Web Development with CakePHP
RESTful Web Development with CakePHPRESTful Web Development with CakePHP
RESTful Web Development with CakePHP
 
APIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex PiazAPIs Rest(Ful): como fazer, por Alex Piaz
APIs Rest(Ful): como fazer, por Alex Piaz
 
Aws video creator
Aws video creatorAws video creator
Aws video creator
 
Intro to Silex
Intro to SilexIntro to Silex
Intro to Silex
 
Autenticação e Autorização - MercadoLivre Developers Conference
Autenticação e Autorização - MercadoLivre Developers ConferenceAutenticação e Autorização - MercadoLivre Developers Conference
Autenticação e Autorização - MercadoLivre Developers Conference
 
Recursive in CakePHP
Recursive in CakePHPRecursive in CakePHP
Recursive in CakePHP
 
Full-Stack CakePHP Deployment
Full-Stack CakePHP DeploymentFull-Stack CakePHP Deployment
Full-Stack CakePHP Deployment
 
Customize CakePHP bake
Customize CakePHP bakeCustomize CakePHP bake
Customize CakePHP bake
 
CakePHP mistakes made
CakePHP mistakes madeCakePHP mistakes made
CakePHP mistakes made
 
9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resources9 Awesome cake php tutorials and resources
9 Awesome cake php tutorials and resources
 
Api usando Silex
Api usando SilexApi usando Silex
Api usando Silex
 
Top 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHPTop 50 Interview Questions and Answers in CakePHP
Top 50 Interview Questions and Answers in CakePHP
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Road to CakePHP 3.0
Road to CakePHP 3.0Road to CakePHP 3.0
Road to CakePHP 3.0
 
Cakephp 3
Cakephp 3 Cakephp 3
Cakephp 3
 
Jquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-brJquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-br
 
Advanced Querying with CakePHP 3
Advanced Querying with CakePHP 3Advanced Querying with CakePHP 3
Advanced Querying with CakePHP 3
 

Ähnlich wie Criando e consumindo Web Services (REST) com o CakePHP

Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Thyago Maia
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIIvan Paulovich
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptIvan Paulovich
 
Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Saulo Vallory
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPMarcelo Andrade
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Thyago Maia
 
O processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra SoaresO processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra SoaresProdv Comunicação
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com SpringMateus Malaquias
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Maurício Linhares
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkMarcelo Rodrigo
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthJean Lima Lopes
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Thyago Maia
 

Ähnlich wie Criando e consumindo Web Services (REST) com o CakePHP (20)

Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web API
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
API Apontador
API ApontadorAPI Apontador
API Apontador
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0Meu projeto final - Neobase 2.0
Meu projeto final - Neobase 2.0
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
 
O processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra SoaresO processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra Soares
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Php 05 Mvc
Php 05 MvcPhp 05 Mvc
Php 05 Mvc
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuth
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
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?
  • 27. Perguntas? Carlos Pires -  E-mail: carlos.pires@2km.com.br -  Twitter: @cadu www.2km.com.br - Twitter: @2km