Web Services (in portuguese)

Preview:

DESCRIPTION

Web Services in PHP5

Citation preview

Web Services em PHP

Bruno Pedro <bpedro@computer.org>

PHP Summer School - 19 de Julho de 2007

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/