2. Weiberlan Garcia
●
Consultor de Software Livre, trabalha na empresa
Ambiente Livre Tecnologia. Desempenha
funções de análise, implementação e
implantação de soluções para softwares livres.
Atua há mais de 4 anos com programação em
PHP, MySql e jQuery, desde sistemas ERP até
websites institucionais e e-commerce.
●
Aluno do curso de Análise e Desenvolvimento de
Sistemas na Faculdade OPET.
3. Web services
Web service é uma solução utilizada na integração
de sistemas e na comunicação entre aplicações
diferentes;
Características:
● Interação novas aplicações X antigas aplicações;
● Compatibilidade de plataformas;
● Agilidade de processos;
● Segurança;
4. Protocolo HTTP(HyperText Transfer Protocol -
Protocolo de Transferência de Hipertexto)
● Trata-se de um protocolo de comunicação entre
sistemas de informação que permite a transferência
de dados entre redes de computadores,
principalmente na World Wide Web (Internet).
5. User Agent (O cliente)
User Agent, também chamado de Browser, refere-se ao parceiro
de uma sessão HTTP. O User Agent inicia o pedido(request) a
ser atendido(response) pelo servidor Web.
Web Server(O servidor)
Web servers são processos que permitem solicitações HTTP
feitas por cliente Web (Browsers), e como resposta, retornam
informações na forma de mensagens, ou outros tipos de
documentos, como por exemplo, textos, vídeos, imagens,
dentre outros.
6. HTTP é um protocolo fácil de entender, pois é
baseado no conceito de pedido e resposta (request e
response). Uma transação HTTP, independente da
sua complexidade, possui a seguinte estrutura
elementar:
7. Método GET
Solicita algum recurso como um arquivo ou um script
CGI (qualquer dado que estiver identificado pelo
URI) por meio do protocolo HTTP.
Método POST
Envia dados para serem processados (por exemplo,
dados de um formulário HTML) para o recurso
especificado.
8. REST (Representational State Transfer -
Transferência de Estado Representativo)
Criado em 2000 através de uma tese de doutorado
de Roy Fielding. Que por sinal é um dos criadores do
protocolo http.
Trata-se de um estilo de arquitetura de software para
sistemas distribuídos.
Tem como base o conceito de identificadores uniformes
de recursos(URIs).
9. URIs(Uniform Resource Identifier - Identificador
Uniforme de Recursos)
● URL's com identificadores e parâmetros
- Exemplo de URIs:
http://www.dominio.com.br/webserviceRest/?
retornarClientes=true&idcliente=21
10. Webservice RESTfull
Ao se criar um webservice na arquitetura REST, a sua
denominação então, passa a se tornar RESTfull.
Em suma, um webservice RESTfull nada mais é do
que usar o HTTP como ele foi concebido, ou seja,
utilizando GET e POST por exemplo.
11. Webservice RESTfull
Vantagens:
- Agilidade e Simplicidade
- Uso correto do protocolo HTTP (Ex: uso de GET)
- Produtividade e Clareza
- Manutenção (muito mais simples de modificar o
sistema)
12. JSON (JavaScript Object Notation – Notação de
objeto Javascript)
Trata-se de uma estrutura de dados que faz parte do
javascript puro e não precisa de nenhuma biblioteca
ou plugin para trabalhar.
É um subconjunto da notação de objeto de
JavaScript, mas seu uso não requer JavaScript
exclusivamente.
Estrutura de dados simples;
Tempo de execução X XML;
16. JSON (JavaScript Object Notation – Notação de
objeto Javascript)
Estrutura:
A estrutura de dados JSON pode ser identificada de duas
formas:
- Como uma coleção de pares nome/valor. A estrutura fica
semelhante a um array associativo do php:
{“id” : “1”, “nome” : “Paulo da Silva”, “idade” : “35”, “sexo” :
“M”}
- Ou uma lista ordenada de valores (Sem associações
nome/valor):
[“1”, “Paulo da Silva”, “35”, “M”]
17. JSON (JavaScript Object Notation – Notação de
objeto Javascript)
Definindo uma variável php com valor de objeto JSON
- Array associativo
$cliente = ‘{“id” : “1”, “nome” : “Paulo da Silva”, “idade”
: “35”, “sexo” : “M”}’;
Ou
- Lista ordenada:
$cliente = ‘[“1”, "Paulo da Silva", “35”, "M"]’;
18. JSON (JavaScript Object Notation – Notação de
objeto Javascript)
Convertendo JSON para arrays ou objetos php e vice-versa
Para conversões de arrays e objetos em php para a
estrutura de dados json, basta utilizar duas funções
nativas do próprio php:
- json_decode ($variavel, boolean[opcional,
default:false]);
- json_encode($variavel);
19. JSON (JavaScript Object Notation – Notação de
objeto Javascript)
Utilizando o json_decode
<?php
//string json contendo os dados de um funcionário
$json_str = '{"nome":"Paulo da Silva", "idade":38, "sexo":
"M"}';
//faz o parsing na string, gerando um objeto PHP
$obj = json_decode($json_str);
//faz o parsing na string, gerando um array PHP
$array = json_decode($json_str, true);
?>
20. JSON (JavaScript Object Notation – Notação de
objeto Javascript)
Utilizando o json_encode
<?php
//Variável contendo um array em php
$array = array( “nome” => “Paulo da Silva”, “idade”
=> “38”, “sexo” => “M” );
//Chama função para converter o array em um json
$json = json_encode($array);
?>
21. Disponibilizando dados para consumo
Para disponibilizar os dados json para consumo, basta usar a
função echo ou print para imprimir o objeto na tela.
Posteriormente veremos como consumir estes dados.
Exemplo:
<?php
// string json contendo os dados de um funcionário
$json_str = '{"nome":"Paulo da Silva", "idade":38, "sexo":
"M"}';
// disponibilizando para consumo
echo $json_str;
?>
22. Consumindo dados disponibilizados
Existem várias formas de consumir os dados em php,
mas as duas principais e mais usuais são através da
função nativa do php file_get_contents() ou da biblioteca
cURL().
file_get_contents()
$result =
file_get_contents('http://www.dominio.com.br/webservice
Rest/?retornarClientes=true&idcliente=21');
Na variável $result estará todo o conteúdo retornado da
URI passada como parâmetro para a função.