SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Criando e consumindo
Web service REST com PHP e JSON
Palestrante: Weiberlan Garcia
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.
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;
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).
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.
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:
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.
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).
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
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.
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)
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;
JSON VS XML
Leitura
Aceitação
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”]
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"]’;
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);
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);
?>
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);
?>
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;
?>
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.
Consumindo dados disponibilizados
cURL()
$curl =
curl_init('http://www.dominio.com.br/webserviceRest/?
retornarClientes=true&idcliente=21');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,
true);
$result = curl_exec($ch);
Contatos
● weiberlan@ambientelivre.com.br
● facebook.com/ambientelivre
● @ambientelivre
● www.ambientelivre.com.br

Mais conteúdo relacionado

Mais procurados

Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!Flávio Pimenta
 
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
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsTessa Mero
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
ReST (Representational State Transfer) Explained
ReST (Representational State Transfer) ExplainedReST (Representational State Transfer) Explained
ReST (Representational State Transfer) ExplainedDhananjay Nene
 
Test automation of ap is using postman
Test automation of ap is using postmanTest automation of ap is using postman
Test automation of ap is using postmanBugRaptors
 
B4USolution_API-Testing
B4USolution_API-TestingB4USolution_API-Testing
B4USolution_API-Testingb4usolution .
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviçosElias Nogueira
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman
 
Presentation for soap ui
Presentation for soap uiPresentation for soap ui
Presentation for soap uiAnjali Rao
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptFábio Flatschart
 

Mais procurados (20)

Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!Construir microservices em python nunca foi tão simples como com o Nameko!
Construir microservices em python nunca foi tão simples como com o Nameko!
 
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
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
Rest assured
Rest assuredRest assured
Rest assured
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
REST API
REST APIREST API
REST API
 
ReST (Representational State Transfer) Explained
ReST (Representational State Transfer) ExplainedReST (Representational State Transfer) Explained
ReST (Representational State Transfer) Explained
 
Test automation of ap is using postman
Test automation of ap is using postmanTest automation of ap is using postman
Test automation of ap is using postman
 
B4USolution_API-Testing
B4USolution_API-TestingB4USolution_API-Testing
B4USolution_API-Testing
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviços
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Presentation for soap ui
Presentation for soap uiPresentation for soap ui
Presentation for soap ui
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Express JS
Express JSExpress JS
Express JS
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Getting started with typescript
Getting started with typescriptGetting started with typescript
Getting started with typescript
 
Desenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScriptDesenvolvimento Web : HTML5, CSS3 & JavaScript
Desenvolvimento Web : HTML5, CSS3 & JavaScript
 

Destaque

Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPRamon Ribeiro Rabello
 
Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2Rankest
 
Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)Bruno Pedro
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPDaniel Arndt Alves
 
Palestra Flisol 2012 - Campinas
Palestra Flisol 2012 - CampinasPalestra Flisol 2012 - Campinas
Palestra Flisol 2012 - CampinasAnderson de Castro
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01joaocarlobarros
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
Cookies e Sessões e PHP
Cookies e Sessões e PHPCookies e Sessões e PHP
Cookies e Sessões e PHPHumberto Moura
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPElwin Huaman
 
Como implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPComo implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPPablo Aguiar
 
Construindo uma Rede Social com PHP e Software Livre
Construindo uma Rede Social com PHP e Software LivreConstruindo uma Rede Social com PHP e Software Livre
Construindo uma Rede Social com PHP e Software LivreElton Minetto
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPDavid J. Brenes
 

Destaque (20)

Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Jquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-brJquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-br
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2Criando API Rest no Zend Framework 2
Criando API Rest no Zend Framework 2
 
Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHP
 
Palestra Flisol 2012 - Campinas
Palestra Flisol 2012 - CampinasPalestra Flisol 2012 - Campinas
Palestra Flisol 2012 - Campinas
 
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
 
Slides
SlidesSlides
Slides
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
Php 05 Mvc
Php 05 MvcPhp 05 Mvc
Php 05 Mvc
 
Variaveis Superglobais
Variaveis SuperglobaisVariaveis Superglobais
Variaveis Superglobais
 
Cookies e Sessões e PHP
Cookies e Sessões e PHPCookies e Sessões e PHP
Cookies e Sessões e PHP
 
Aula 5 - Cookies e Sessões em PHP
Aula 5 - Cookies e Sessões em PHPAula 5 - Cookies e Sessões em PHP
Aula 5 - Cookies e Sessões em PHP
 
Desenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHPDesenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHP
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAP
 
Como implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPComo implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHP
 
Construindo uma Rede Social com PHP e Software Livre
Construindo uma Rede Social com PHP e Software LivreConstruindo uma Rede Social com PHP e Software Livre
Construindo uma Rede Social com PHP e Software Livre
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHP
 

Semelhante a Criando e consumindo webservice REST com PHP e JSON

Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixAndré Déo
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPFlávio Lisboa
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFlávio Lisboa
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0jesuinoPower
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHPAdler Medrado
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTJavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTRodrigo Cândido da Silva
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 

Semelhante a Criando e consumindo webservice REST com PHP e JSON (20)

Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Webservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHPWebservices e Computação em Nuvem com PHP
Webservices e Computação em Nuvem com PHP
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0
 
REST com Python
REST com PythonREST com Python
REST com Python
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Web apis
Web apisWeb apis
Web apis
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHP
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTJavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Web Services
Web ServicesWeb Services
Web Services
 

Mais de Ambiente Livre

Low Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceLow Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceAmbiente Livre
 
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.  Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics. Ambiente Livre
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataAmbiente Livre
 
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...Ambiente Livre
 
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration Ambiente Livre
 
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...Ambiente Livre
 
Metodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente LivreMetodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente LivreAmbiente Livre
 
Integrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMISIntegrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMISAmbiente Livre
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Ambiente Livre
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Ambiente Livre
 
TDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosTDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosAmbiente Livre
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesAmbiente Livre
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Ambiente Livre
 
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoPostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoAmbiente Livre
 
Pentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesPentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesAmbiente Livre
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoAmbiente Livre
 
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPMSEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPMAmbiente Livre
 
Carreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI PentahoCarreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI PentahoAmbiente Livre
 
Suporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho ReportSuporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho ReportAmbiente Livre
 

Mais de Ambiente Livre (20)

Low Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine IntelligenceLow Code Data Science with Pentaho Machine Intelligence
Low Code Data Science with Pentaho Machine Intelligence
 
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.  Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
Orquestrando HBase, Cassandra e MongoDB com o Pentaho Big Data Analytics.
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big Data
 
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
FISL18 - Open Data Science - Elaborando uma plataforma de Big Data & Analytic...
 
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
AEL - Adaptive Execution Layer on Spark Cluster with Pentaho Data Integration
 
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
O Potencial Competitivo da Ciencia de Dados e da Inteligencia Artificial nas ...
 
Metodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente LivreMetodologia Hacker de Ensino na Ambiente Livre
Metodologia Hacker de Ensino na Ambiente Livre
 
Integrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMISIntegrando o Drupal com o ECM Alfresco usando CMIS
Integrando o Drupal com o ECM Alfresco usando CMIS
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
 
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
Open Source Data Science - Elaborando uma plataforma de Big Data & Analytics ...
 
TDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativosTDC2017 - Misturando dados com Pentaho para insights mais significativos
TDC2017 - Misturando dados com Pentaho para insights mais significativos
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data Lakes
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre
 
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com PentahoPostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
 
Pentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data LakesPentaho Hadoop Big Data e Data Lakes
Pentaho Hadoop Big Data e Data Lakes
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
 
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPMSEBRAETEC -  Inteligência Empresarial com CRM BI ECM e BPM
SEBRAETEC - Inteligência Empresarial com CRM BI ECM e BPM
 
Carreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI PentahoCarreira Profissional e Certificação de um Analista de BI Pentaho
Carreira Profissional e Certificação de um Analista de BI Pentaho
 
Suporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho ReportSuporte a Geo-Mapping no Pentaho Report
Suporte a Geo-Mapping no Pentaho Report
 

Criando e consumindo webservice REST com PHP e JSON

  • 1. Criando e consumindo Web service REST com PHP e JSON Palestrante: Weiberlan Garcia
  • 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.
  • 23. Consumindo dados disponibilizados cURL() $curl = curl_init('http://www.dominio.com.br/webserviceRest/? retornarClientes=true&idcliente=21'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch);