Php, rest e json – Revista Mobile Parte 1

Vou desenvolver uma aplicação para Android(celular) que converse com PHP, cheguei a dar uma olhada sobre webservices em PHP, porem a solução que vou mostrar foi a mais legal que encontrei. Caso você conheça uma melhor maneira de fazer por favor entre em contato e vamos compartilhar esse conhecimento.

A idéia do projeto será mostrar todas as minhas publicações em qualquer aparelho mobile: iphone, android, tablets etc.. O primeiro passo será ler alguma informação e converter para json, onde uma página em HTML possa consumir o resultado com Ajax(próxima publicação).

Dei uma pesquisada sobre json, rest e php e construi a seguinte solução.

Primeiro criei um Bean, onde vou armazenar todas as informações das publicações, no caso de exemplo usei CLIENTES.

Criei o arquivo Cliente.php, nesse arquivo uso __construct quer seria o construtor da classe PHP, recebendo parâmetros nome e idade, para facilitar na hora da criação, e tambem criei o método getJson para mostrar todas as variáveis privadas na hora da conversão para JSON;

<?php 
class Cliente{ 
	private $nome; 
	private $imagemCapa; 
	
	function __construct($nome,$imagemCapa) {
		$this->nome = $nome;
		$this->imagemCapa = $imagemCapa;
	}

	function setNome($value){ 
		$this->nome = $value;
	} 
	
	function getNome(){ 
		return $this->nome;
	} 
	
	function setImagemCapa($value){
		$this->imagemCapa = $value;
	}
	
	function getImagemCapa(){
		return $this->imagemCapa;
	}
	
	function getJson(){
		return get_object_vars($this);
	}
} 

?>

Produto.php onde vai armazenar as informações dos produtos, no mesmo estilo que Cliente.php

<?php 
class Produto{ 
	private $descricao; 
	private $preco; 
	private $imagemProduto; 
	
	function __construct($descricao, $preco,$imagemProduto) {
		$this->descricao = $descricao;
		$this->preco = $preco;
		$this->imagemProduto = $imagemProduto;
	}

	function setDescricao($value){ 
		$this->descricao = $value;
	} 
	
	function getDescricao(){ 
		return $this->descricao;
	} 
	
	function setPreco($value){ 
		$this->preco = $value;
	} 
	
	function getPreco(){ 
		return $this->preco;
	} 
	
	function setImagemProduto($value){ 
		$this->imagemProduto = $value;
	} 
	
	function getImagemProduto(){ 
		return $this->imagemProduto;
	} 
		
	function getJson(){
		return get_object_vars($this);
	}
}
?>

Criei o arquivo ClientesFunc.php, uso o __construct para povoar meu exemplo e o méteodo getJsonListaClientes para exportar o resultado para um json (array of objects),

<?php
require_once('Cliente.php');
require_once('Produto.php');

class ClientesFunc{
	private $arrRevista;
	
	function __construct() {
		$prod1 = new Produto('Revista Virtual','15 reais mensais','http://www.byiorio.com/php/exemplo2/prod1.png');
		$prod2 = new Produto('Layout Revista','100 reais','http://www.byiorio.com/php/exemplo2/prod2.png');
		$prod3 = new Produto('Revista Personalizada','1000 reais','http://www.byiorio.com/php/exemplo2/prod3.png');
	
		$this->arrRevista  = array();
		$this->arrRevista ['cliente'] = new Cliente('byiorio.com','http://www.byiorio.com/php/exemplo2/byiorio.png');
		$this->arrRevista ['produto'] = array($prod1,$prod2,$prod3);
	}
	
	function getJsonListaClientes(){
	    $arrCli = array();
		$cliente = array();
		$produto = array();
		
		$cliente[] = $this->arrRevista['cliente']->getJson();
		
		foreach ($this->arrRevista['produto'] as $key => $value){
			$produto[] = $value->getJson();
		}
		
		$arrCli['cliente'] = $cliente;
		$arrCli['produto'] = $produto;
		
		return  json_encode($arrCli);
	}
}
?>

Por fim criei o arquivo ClientesRest.php para ser usado pelo javascript para consumir os dados, estou usando no formato REST para que no futuro possa inserir etc…

<?php
require_once('ClientesFunc.php');
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');

$clientesFunc = new ClientesFunc();

switch($_SERVER['REQUEST_METHOD']){
   case 'GET':
	print($clientesFunc->getJsonListaClientes());
	break;
   case 'POST':
	break;
   case 'PUT':
	break;
   case 'DELETE':
	break;
}

?>

O resultado dessa primeira parte você pode conferir em
http://www.byiorio.com/php/exemplo2/ClientesRest.php

Um comentário em “Php, rest e json – Revista Mobile Parte 1

  • Pingback: Luiz Augusto

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Blue Captcha Image
Atualizar

*

Facebook

Get the Facebook Likebox Slider Pro for WordPress
WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera