Web Services em PHP
SAPO CodeBits - 13 de Novembro de 2007
      Bruno Pedro <bpedro@computer.org>
SAPO CodeBits 2007




                      Conteúdo
 • Conceitos
 • Web Services
  • SOAP
  • REST
  • JSON
 • Exercício...
SAPO CodeBits 2007




                  Web Services




                                 Source:The Server Side
        ...
SAPO CodeBits 2007




O que são Web Services?

 • Interacções inter-operáveis
 • Invocações são feitas através da rede
 •...
SAPO CodeBits 2007




                      WSDL

 • Web Services Description Language
 • Linguagem XML
 • Descreve um We...
SAPO CodeBits 2007




                           WSDL
 • UML use-case
                                         WSDL


   ...
SAPO CodeBits 2007




                      WS-I
 • Web Services Interoperability Organization
 • Consórcio de várias emp...
SAPO CodeBits 2007




                      Requisitos

 • PHP 5.2.2
 • Suporte para SOAP
 • Extensão simplexml
 • Extens...
SAPO CodeBits 2007




                      SOAP




                                    Fonte: Prentice Hall
           ...
SAPO CodeBits 2007




                      SOAP

 • Simple Object Access Protocol
 • Normalmente é um pedido HTTP POST
 ...
SAPO CodeBits 2007




 Implementação: servidor

                                         namespace




                  ...
SAPO CodeBits 2007




 Implementação: cliente
                               namespace




                              ...
SAPO CodeBits 2007




                      Output
                                    namespace




                    ...
SAPO CodeBits 2007




                      Persistência
 • Problema: informação perde-se entre
      várias invocações d...
SAPO CodeBits 2007




                SOAP: resumo

 • Suporte para SOAP 1.1, 1.2 e WSDL 1.1
 • Gere tipos de dados simpl...
SAPO CodeBits 2007




                      REST
      «interface»
                                   /calculator/sum/
  ...
SAPO CodeBits 2007




                      REST
 • Representational State Transfer
 • Normalmente utilizado através de u...
SAPO CodeBits 2007




 Implementação: servidor



                           gere a invocação




Web Services em PHP   18
SAPO CodeBits 2007




                      DOM
 • Document Object Model
 • Extensão de PHP
 • Instalada por omissão
 • P...
SAPO CodeBits 2007




Implementação: servidor
                                   cria um
                                ...
SAPO CodeBits 2007




                      simplexml
 • Extensão de PHP
 • Instalada por omissão
 • Permite converter um...
SAPO CodeBits 2007




 Implementação: cliente

                                       endpoint

                         ...
SAPO CodeBits 2007




                      Output



                             result




Web Services em PHP     23
SAPO CodeBits 2007




                  REST: resumo
• É necessário implementar toda a interacção
     cliente/servidor
•...
SAPO CodeBits 2007




                      JSON




                                JSON Logo
                          ...
SAPO CodeBits 2007




                      JSON
 • JavaScript Object Notation
 • Aproximação REST
 • Resposta não é XML
...
SAPO CodeBits 2007




Implementação: servidor

                           handle incoming call



                       ...
SAPO CodeBits 2007




 Implementação: cliente
                                           endpoint



                    ...
SAPO CodeBits 2007




                      Output



                             resultado




Web Services em PHP     29
SAPO CodeBits 2007




                      JSON
 • Filosofia REST
 • Gere tipos de dados simples e complexos
 • As chamad...
SAPO CodeBits 2007




                      Exemplo

 • Consumir Web Service SAPO
  • implementar cliente SOAP
  • implem...
SAPO CodeBits 2007




               Serviços SAPO

 • http://services.sapo.pt/
 • Lista de serviços disponíveis
 • Docum...
SAPO CodeBits 2007




   Implementação SOAP




Web Services em PHP   33
SAPO CodeBits 2007




   Implementação SOAP




Web Services em PHP   34
SAPO CodeBits 2007




    Implementação REST




Web Services em PHP   35
SAPO CodeBits 2007




                      Resumo

 • WSDL, WS-I
 • SOAP
 • REST
 • JSON
 • Exemplos
Web Services em PHP...
SAPO CodeBits 2007




                      Questões?




Web Services em PHP       37
SAPO CodeBits 2007




             Mais informação
 • My blog: http://unfoldingtheweb.com/

 • PHP Manual: http://www.php...
Upcoming SlideShare
Loading in...5
×

Web Services

3,105

Published on

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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,105
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
131
Comments
0
Likes
2
Embeds 0
No embeds

No notes for 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×