Web Services

3.309 visualizações

Publicada em

Através da utilização de funções nativas de PHP5 é possível implementar produtores (servidores) e consumidores (clientes) de Web Services.

Vários conceitos teóricos serão abordados, como o HTTP GET e POST, o SOAP, o REST e o WSDL (/Web Services Description Language/). A apresentação terá ainda uma componente prática onde serão demonstradas implementações de Web Services SOAP e REST, utilizando para isso exemplos de consumo de fontes do SAPO.

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.309
No SlideShare
0
A partir de incorporações
0
Número de incorporações
68
Ações
Compartilhamentos
0
Downloads
133
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Web Services

  1. 1. Web Services em PHP SAPO CodeBits - 13 de Novembro de 2007 Bruno Pedro <bpedro@computer.org>
  2. 2. SAPO CodeBits 2007 Conteúdo • Conceitos • Web Services • SOAP • REST • JSON • Exercícios • Resumo Web Services em PHP 2
  3. 3. SAPO CodeBits 2007 Web Services Source:The Server Side (http://tinyurl.com/38umxt) Web Services em PHP 3
  4. 4. SAPO CodeBits 2007 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 Web Services em PHP 4
  5. 5. SAPO CodeBits 2007 WSDL • Web Services Description Language • Linguagem XML • Descreve um Web Service • operações disponíveis • localizações ou endpoints Web Services em PHP 5
  6. 6. SAPO CodeBits 2007 WSDL • UML use-case WSDL <obtém> <consome> aplicação Web Service Web Services em PHP 6
  7. 7. SAPO CodeBits 2007 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) Web Services em PHP 7
  8. 8. SAPO CodeBits 2007 Requisitos • PHP 5.2.2 • Suporte para SOAP • Extensão simplexml • Extensão DOM • Extensão JSON Web Services em PHP 8
  9. 9. SAPO CodeBits 2007 SOAP Fonte: Prentice Hall (http://tinyurl.com/33dcch) Web Services em PHP 9
  10. 10. SAPO CodeBits 2007 SOAP • Simple Object Access Protocol • Normalmente é um pedido HTTP POST • A chamada é encapsulada XML • A resposta é um documento XML • PHP gere todo o processo Web Services em PHP 10
  11. 11. SAPO CodeBits 2007 Implementação: servidor namespace inicia o servidor assigna uma classe gere invocações Web Services em PHP 11
  12. 12. SAPO CodeBits 2007 Implementação: cliente namespace endpoint mostra resultado Web Services em PHP 12
  13. 13. SAPO CodeBits 2007 Output namespace resultado Web Services em PHP 13
  14. 14. SAPO CodeBits 2007 Persistência • Problema: informação perde-se entre várias invocações do Web Service • Como resolver? Web Services em PHP 14
  15. 15. SAPO CodeBits 2007 SOAP: resumo • Suporte para SOAP 1.1, 1.2 e WSDL 1.1 • Gere tipos de dados simples e complexos • Implementação muito simples • Output é demasiado “pesado” Web Services em PHP 15
  16. 16. SAPO CodeBits 2007 REST «interface» /calculator/sum/ Resource GET - perform a calculation GET PUT - not used PUT POST - not used POST DELETE - not used DELETE http://example.com/calculator/sum/?x=121&y=233 Web Services em PHP 16
  17. 17. SAPO CodeBits 2007 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 Web Services em PHP 17
  18. 18. SAPO CodeBits 2007 Implementação: servidor gere a invocação Web Services em PHP 18
  19. 19. SAPO CodeBits 2007 DOM • 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 19
  20. 20. SAPO CodeBits 2007 Implementação: servidor cria um documento XML adiciona elementos devolve o resultado Web Services em PHP 20
  21. 21. SAPO CodeBits 2007 simplexml • 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 21
  22. 22. SAPO CodeBits 2007 Implementação: cliente endpoint arguments load XML document output result Web Services em PHP 22
  23. 23. SAPO CodeBits 2007 Output result Web Services em PHP 23
  24. 24. SAPO CodeBits 2007 REST: resumo • É 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 24
  25. 25. SAPO CodeBits 2007 JSON JSON Logo Source: json.org Web Services em PHP 25
  26. 26. SAPO CodeBits 2007 JSON • JavaScript Object Notation • Aproximação REST • Resposta não é XML • É invocado pelo browser • Resposta é gerada por json_encode() • Resposta é interpretada por JavaScript Web Services em PHP 26
  27. 27. SAPO CodeBits 2007 Implementação: servidor handle incoming call generate result output JSON string Web Services em PHP 27
  28. 28. SAPO CodeBits 2007 Implementação: cliente endpoint parâmetros mostra output Web Services em PHP 28
  29. 29. SAPO CodeBits 2007 Output resultado Web Services em PHP 29
  30. 30. SAPO CodeBits 2007 JSON • 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 30
  31. 31. SAPO CodeBits 2007 Exemplo • Consumir Web Service SAPO • implementar cliente SOAP • implementar cliente REST Web Services em PHP 31
  32. 32. SAPO CodeBits 2007 Serviços SAPO • http://services.sapo.pt/ • Lista de serviços disponíveis • Documentação de cada serviço • Geração de código cliente Web Services em PHP 32
  33. 33. SAPO CodeBits 2007 Implementação SOAP Web Services em PHP 33
  34. 34. SAPO CodeBits 2007 Implementação SOAP Web Services em PHP 34
  35. 35. SAPO CodeBits 2007 Implementação REST Web Services em PHP 35
  36. 36. SAPO CodeBits 2007 Resumo • WSDL, WS-I • SOAP • REST • JSON • Exemplos Web Services em PHP 36
  37. 37. SAPO CodeBits 2007 Questões? Web Services em PHP 37
  38. 38. SAPO CodeBits 2007 Mais informação • 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/ Web Services em PHP 38

×