web services (in portuguese)
DESCRIPTION
Web Services in PHP5TRANSCRIPT
Web Services em PHP
PHP Summer School
Conteúdo• Conceitos
• Web Services
• SOAP
• REST
• JSON
• Exercícios
• Resumo
2
Web Services em PHP
PHP Summer School
Web Services
3
Source: The Server Side(http://tinyurl.com/38umxt)
Web Services em PHP
PHP Summer School
O que são Web Services?
• Interacções inter-operáveis
• Invocações são feitas através da rede
• Existem bastantes standards
• Usados pela maioria dos serviços Web 2.0
4
Web Services em PHP
PHP Summer School
WSDL
• Web Services Description Language
• Linguagem XML
• Descreve um Web Service
• operações disponíveis
• localizações ou endpoints
5
Web Services em PHP
PHP Summer School
WSDL
6
aplicação
<obtém>
WSDL
<consome>
Web Service
• UML use-case
Web Services em PHP
PHP Summer School
UDDI
• Universal Description, Discovery and Integration
• Registo central de Web Services
• Conceito “Páginas Amarelas”
• Devolve localizações de Web Services
• Pouco utilizado na Internet
7
Web Services em PHP
PHP Summer School
UDDI
8
aplicação
<obtém> WSDL
<consome>
Web Service
UDDI
<localiza WSDL>
• UML use-case
Web Services em PHP
PHP Summer School
WS-I• Web Services Interoperability Organization
• Consórcio de várias empresas
• Promove a inter-operabilidade de Web Services
• Define perfis de utilização
• Basic Profile (BP)
• Security Profile (SP)
• Simple SOAP Binding Profile (SSBP)9
Web Services em PHP
PHP Summer School
Requisitos
• PHP 5.2.2
• Suporte para SOAP
• Extensão simplexml
• Extensão DOM
• Extensão JSON
10
Web Services em PHP
PHP Summer School
SOAP
Fonte: Prentice Hall(http://tinyurl.com/33dcch)
11
Web Services em PHP
PHP Summer School
SOAP
• Simple Object Access Protocol
• Normalmente é um pedido HTTP POST
• A chamada é encapsulada XML
• A resposta é um documento XML
• PHP gere todo o processo
12
Web Services em PHP
PHP Summer School
Implementação: servidor
13
namespace
inicia o servidor
assigna uma classe
gere invocações
Web Services em PHP
PHP Summer School
Implementação: cliente
14
namespace
endpoint
mostra resultado
Web Services em PHP
PHP Summer School
Output
15
namespace
resultado
Web Services em PHP
PHP Summer School
Persistência
16
• Problema: informação perde-se entre várias invocações do Web Service
• Como resolver?
Web Services em PHP
PHP Summer School
Persistência
• Utilização do método SoapServer::setPersistence()
• Persistência é totalmente gerida pelo PHP
• Só funciona se o servidor exportar as operações a partir de uma classe
• Informação fica disponível entre várias invocações
17
Web Services em PHP
PHP Summer School
Persistência: servidor
18
persistência
Web Services em PHP
PHP Summer School
Persistência: cliente
19
grava informação
mostra informaçãopreviamente gravada
Web Services em PHP
PHP Summer School
SOAP: resumo
20
• Suporte para SOAP 1.1, 1.2 e WSDL 1.1
• Gere tipos de dados simples e complexos
• Gere persistência de informação
• Implementação muito simples
• Output é demasiado “pesado”
Web Services em PHP
PHP Summer School
REST
http://example.com/calculator/sum/?x=121&y=233
GETPUTPOSTDELETE
«interface»
ResourceGET - perform a calculationPUT - not usedPOST - not usedDELETE - not used
/calculator/sum/
21
Web Services em PHP
PHP Summer School
REST• Representational State Transfer
• Normalmente utilizado através de um pedido HTTP GET
• Invocação é feita através de parâmetros GET
• Resposta é um documento XML
• Criação da resposta com DOM
• Interpretação da resposta com simplexml
22
Web Services em PHP
PHP Summer School
Implementação: servidor
23
gere a invocação
Web Services em PHP
PHP Summer School
DOM
24
• Document Object Model
• Extensão de PHP
• Instalada por omissão
• Permite manuseamento de documentos XML usando a árvore DOM
• Mais simples do que manipular blocos de texto
Web Services em PHP
PHP Summer School
Implementação: servidor
25
cria umdocumento XML
adicionaelementos
devolve o resultado
Web Services em PHP
PHP Summer School
simplexml
26
• Extensão de PHP
• Instalada por omissão
• Permite converter um documento XML num objecto
• Permite o manuseamento de documentos XML de uma forma muito fácil
Web Services em PHP
PHP Summer School
Implementação: cliente
27
endpoint
arguments
load XML document
output result
Web Services em PHP
PHP Summer School
Output
28
result
Web Services em PHP
PHP Summer School
REST: resumo
29
• É necessário implementar toda a interacção cliente/servidor
• O schema do XML tem que ser conhecido pelo cliente para que consiga interpretar a resposta
• Não é possível gerir tipos complexos
• resolução através de serialização
• A resposta é geralmente RSS
Web Services em PHP
PHP Summer School
JSON
30
JSON LogoSource: json.org
Web Services em PHP
PHP Summer School
JSON• JavaScript Object Notation
• Aproximação REST
• Resposta não é XML
• É invocado pelo browser
• Resposta é gerada por json_encode()
• Resposta é interpretada por JavaScript
31
Web Services em PHP
PHP Summer School
Implementação: servidor
32
handle incoming call
generate result
outputJSON string
Web Services em PHP
PHP Summer School
Implementação: cliente
33
endpoint
parâmetros
mostra output
Web Services em PHP
PHP Summer School
Output
34
resultado
Web Services em PHP
PHP Summer School
JSON
35
• Filosofia REST
• Gere tipos de dados simples e complexos
• As chamadas podem ser efectuadas usando AJAX
• Pode também ser utilizado server-side, servindo de transporte de informação
Web Services em PHP
PHP Summer School
Exercício 1
• Implementação da Calculadora em Web Service SOAP
• implementar servidor
• implementar cliente
• adicionar persistência de dados
36
Web Services em PHP
PHP Summer School
Implementação: servidor
37
Web Services em PHP
PHP Summer School
Implementação: servidor
38
Web Services em PHP
PHP Summer School
Implementação: cliente
39
Web Services em PHP
PHP Summer School
Exercício 2
• Consumir Web Service SAPO
• implementar cliente SOAP
• implementar cliente REST
40
Web Services em PHP
PHP Summer School
Implementação: SOAP
41
Web Services em PHP
PHP Summer School
Implementação: REST
42
Web Services em PHP
PHP Summer School
Resumo
• WSDL, UDDI, WS-I
• SOAP
• Persistência de dados
• REST
• Passagem de parâmetros
• JSON
43
Web Services em PHP
PHP Summer School
Questões?
44
Web Services em PHP
PHP Summer School
Mais informação
45
• My blog: http://unfoldingtheweb.com/
• PHP Manual: http://www.php.net/
• SOAP: http://www.w3.org/TR/soap/
• REST: http://tinyurl.com/akhc7
• JSON: http://www.json.org/