SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5IT Geeks
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우NAVER D2
 
Django Rest Framework - Building a Web API
Django Rest Framework - Building a Web APIDjango Rest Framework - Building a Web API
Django Rest Framework - Building a Web APIMarcos Pereira
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache AntIker Canarias
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to phpAnjan Banda
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
Introduction au Framework Laravel
Introduction au Framework LaravelIntroduction au Framework Laravel
Introduction au Framework LaravelHoucem Hedhly
 
Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1Vikas Chauhan
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Zhe Li
 
State manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to VuexState manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to VuexCommit University
 

Tendances (20)

Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
PHP - Introduction to PHP Fundamentals
PHP -  Introduction to PHP FundamentalsPHP -  Introduction to PHP Fundamentals
PHP - Introduction to PHP Fundamentals
 
PHP
PHPPHP
PHP
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우
 
Django Rest Framework - Building a Web API
Django Rest Framework - Building a Web APIDjango Rest Framework - Building a Web API
Django Rest Framework - Building a Web API
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
An introduction to Vue.js
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
 
Initiation au html
Initiation au htmlInitiation au html
Initiation au html
 
Introduction au Framework Laravel
Introduction au Framework LaravelIntroduction au Framework Laravel
Introduction au Framework Laravel
 
Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1Laravel Beginners Tutorial 1
Laravel Beginners Tutorial 1
 
AngularJS
AngularJSAngularJS
AngularJS
 
Introduction to PHP
Introduction to PHPIntroduction to PHP
Introduction to PHP
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...
 
Php ppt
Php pptPhp ppt
Php ppt
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
File system node js
File system node jsFile system node js
File system node js
 
Laravel overview
Laravel overviewLaravel overview
Laravel overview
 
State manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to VuexState manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to Vuex
 

En vedette

Criando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPCriando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPRenan Gonçalves
 
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
 

En vedette (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
 
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
 
CakePHP
CakePHPCakePHP
CakePHP
 

Similaire à 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
 
Interagindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHPInteragindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHPEduardo Cesar
 
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
 

Similaire à 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
 
Interagindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHPInteragindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHP
 
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
 

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