SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Web Services em PHP
PHP Summer School - 19 de Julho de 2007
      Bruno Pedro <bpedro@computer.org>
PHP Summer School




                      Conteúdo
 • Conceitos
 • Web Services
  • SOAP
  • REST
  • JSON
 • Exercícios
 • Resumo
Web Services em PHP      2
PHP Summer School




                  Web Services




                                 Source:The Server Side
                             (http://tinyurl.com/38umxt)

Web Services em PHP    3
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

Web Services em PHP   4
PHP Summer School




                      WSDL

 • Web Services Description Language
 • Linguagem XML
 • Descreve um Web Service
  • operações disponíveis
  • localizações ou endpoints
Web Services em PHP    5
PHP Summer School




                                  WSDL
 • UML use-case
                                                 WSDL


                                   <obtém>




                                   <consome>
                      aplicação



                                               Web Service




Web Services em PHP                     6
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
Web Services em PHP    7
PHP Summer School




                            UDDI
 • UML use-case
                                                 UDDI



                            <localiza WSDL>



                              <obtém>           WSDL



                              <consome>
                aplicação



                                              Web Service




Web Services em PHP                 8
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)
Web Services em PHP    9
PHP Summer School




                      Requisitos

 • PHP 5.2.2
 • Suporte para SOAP
 • Extensão simplexml
 • Extensão DOM
 • Extensão JSON
Web Services em PHP       10
PHP Summer School




                      SOAP




                                     Fonte: Prentice Hall
                            (http://tinyurl.com/33dcch)

Web Services em PHP    11
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
Web Services em PHP    12
PHP Summer School




 Implementação: servidor

                                         namespace




                                         inicia o servidor
                                  assigna uma classe
                       gere invocações

Web Services em PHP   13
PHP Summer School




 Implementação: cliente
                               namespace




                                  endpoint



       mostra resultado

Web Services em PHP       14
PHP Summer School




                      Output
                                    namespace




                        resultado

Web Services em PHP     15
PHP Summer School




                      Persistência
 • Problema: informação perde-se entre
      várias invocações do Web Service


 • Como resolver?


Web Services em PHP        16
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

Web Services em PHP        17
PHP Summer School




    Persistência: servidor




                           persistência


Web Services em PHP   18
PHP Summer School




       Persistência: cliente


                               grava informação

                            mostra informação
                           previamente gravada




Web Services em PHP   19
PHP Summer School




                SOAP: resumo

 • 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   20
PHP Summer School




                      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      21
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
Web Services em PHP     22
PHP Summer School




 Implementação: servidor



                           gere a invocação




Web Services em PHP   23
PHP Summer School




                      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    24
PHP Summer School




Implementação: servidor
                                   cria um
                                   documento XML
                                           adiciona
                                          elementos


                           devolve o resultado




Web Services em PHP   25
PHP Summer School




                      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       26
PHP Summer School




 Implementação: cliente

                                       endpoint

                                    arguments



                                load XML document

           output result

Web Services em PHP        27
PHP Summer School




                      Output



                             result




Web Services em PHP     28
PHP Summer School




                  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      29
PHP Summer School




                      JSON




                                JSON Logo
                            Source: json.org




Web Services em PHP    30
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
Web Services em PHP    31
PHP Summer School




Implementação: servidor

                           handle incoming call



                                        generate result


                                         output
                                         JSON string

Web Services em PHP   32
PHP Summer School




 Implementação: cliente
                                           endpoint



                                                      parâmetros




                      mostra output


Web Services em PHP                   33
PHP Summer School




                      Output



                             resultado




Web Services em PHP     34
PHP Summer School




                      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     35
PHP Summer School




                      Exercício 1

 • Implementação da Calculadora em Web
      Service SOAP
     • implementar servidor
     • implementar cliente
     • adicionar persistência de dados
Web Services em PHP        36
PHP Summer School




Implementação: servidor




Web Services em PHP   37
PHP Summer School




Implementação: servidor




Web Services em PHP   38
PHP Summer School




 Implementação: cliente




Web Services em PHP   39
PHP Summer School




                      Exercício 2

 • Consumir Web Service SAPO
  • implementar cliente SOAP
  • implementar cliente REST

Web Services em PHP        40
PHP Summer School




  Implementação: SOAP




Web Services em PHP   41
PHP Summer School




   Implementação: REST




Web Services em PHP   42
PHP Summer School




                      Resumo
 • WSDL, UDDI, WS-I
 • SOAP
 • Persistência de dados
 • REST
 • Passagem de parâmetros
 • JSON
Web Services em PHP     43
PHP Summer School




                      Questões?




Web Services em PHP       44
PHP Summer School




             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   45

Weitere ähnliche Inhalte

Was ist angesagt?

Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBelliando dias
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09Felipe Ribeiro
 
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
 
Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHPelliando dias
 
Android webservice
Android webserviceAndroid webservice
Android webserviceAlan Echer
 
Web Services
Web ServicesWeb Services
Web Servicescodebits
 
Do Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio JugDo Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio JugSergio Azevedo
 
Criando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPCriando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPRenan Gonçalves
 
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]Carl Edwin
 
Introdução de web
Introdução de webIntrodução de web
Introdução de webSedu
 
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilComo um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilLuis Cipriani
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoDavid Robert Camargo de Campos
 

Was ist angesagt? (17)

Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEB
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09
 
Rest Teoria E Pratica
Rest Teoria E PraticaRest Teoria E Pratica
Rest Teoria E Pratica
 
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
 
Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHP
 
Android webservice
Android webserviceAndroid webservice
Android webservice
 
Web Services
Web ServicesWeb Services
Web Services
 
Do Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio JugDo Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio Jug
 
RESTful com json
RESTful com jsonRESTful com json
RESTful com json
 
Criando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHPCriando Webservices RESTFul com CakePHP
Criando Webservices RESTFul com CakePHP
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
Aceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamicoAceleracao+conteudo+dinamico
Aceleracao+conteudo+dinamico
 
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
Monografia restful -_2013_-_desenvolvimento_v17-final-2014[1]
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilComo um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Html5 Aula 4
Html5 Aula 4Html5 Aula 4
Html5 Aula 4
 

Andere mochten auch

Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebAlexandre Andrade
 
Erlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais felizErlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais felizBruno Henrique - Garu
 
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 JSONAmbiente Livre
 
SOA e Web Services
SOA e Web ServicesSOA e Web Services
SOA e Web Servicessergiocrespo
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Michael Girouard
 
Como implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPComo implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPPablo Aguiar
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zeroFred Ramos
 

Andere mochten auch (9)

Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da Web
 
Erlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais felizErlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais feliz
 
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
 
SOA e Web Services
SOA e Web ServicesSOA e Web Services
SOA e Web Services
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5
 
Jquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-brJquery fundamentals-book-pt-br
Jquery fundamentals-book-pt-br
 
Como implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHPComo implementar APIs RESTful em PHP
Como implementar APIs RESTful em PHP
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 

Ähnlich wie Web Services (in portuguese)

Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)Bruno Pedro
 
Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)Nuno Loureiro
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdfRubenManhia
 
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
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxAlmir Neto
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-phpBrenno Abreu
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXManuel Lemos
 
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
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
Aplicações Web Multiplataforma com ASP .NET Core MVC - FATEC
Aplicações Web Multiplataforma com ASP .NET Core MVC - FATECAplicações Web Multiplataforma com ASP .NET Core MVC - FATEC
Aplicações Web Multiplataforma com ASP .NET Core MVC - FATECRafael Pessoni
 
Programção PHP
Programção PHPProgramção PHP
Programção PHPceap
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantesMarco Pinheiro
 
PHP - Capítulo 01
PHP - Capítulo 01PHP - Capítulo 01
PHP - Capítulo 01fdorado
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveiselliando dias
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 

Ähnlich wie Web Services (in portuguese) (20)

Web Services (in portuguese)
Web Services (in portuguese)Web Services (in portuguese)
Web Services (in portuguese)
 
Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
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
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
 
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
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
Aplicações Web Multiplataforma com ASP .NET Core MVC - FATEC
Aplicações Web Multiplataforma com ASP .NET Core MVC - FATECAplicações Web Multiplataforma com ASP .NET Core MVC - FATEC
Aplicações Web Multiplataforma com ASP .NET Core MVC - FATEC
 
Programção PHP
Programção PHPProgramção PHP
Programção PHP
 
Security & PHP
Security & PHPSecurity & PHP
Security & PHP
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
 
Mac5700
Mac5700Mac5700
Mac5700
 
PHP - Capítulo 01
PHP - Capítulo 01PHP - Capítulo 01
PHP - Capítulo 01
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 

Mehr von Bruno Pedro

What are Web APIs
What are Web APIsWhat are Web APIs
What are Web APIsBruno Pedro
 
Growing your business with an API
Growing your business with an APIGrowing your business with an API
Growing your business with an APIBruno Pedro
 
Product growth with an API
Product growth with an APIProduct growth with an API
Product growth with an APIBruno Pedro
 
How to grow your business with an API
How to grow your business with an APIHow to grow your business with an API
How to grow your business with an APIBruno Pedro
 
APIs Love to Chat
APIs Love to ChatAPIs Love to Chat
APIs Love to ChatBruno Pedro
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API TestingBruno Pedro
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejsBruno Pedro
 
How to Automate API Discovery
How to Automate API DiscoveryHow to Automate API Discovery
How to Automate API DiscoveryBruno Pedro
 
Api Design & The Paris Subway
Api Design & The Paris SubwayApi Design & The Paris Subway
Api Design & The Paris SubwayBruno Pedro
 
The importance of /me
The importance of /meThe importance of /me
The importance of /meBruno Pedro
 
Maintainable consumers
Maintainable consumersMaintainable consumers
Maintainable consumersBruno Pedro
 
API Code Generation
API Code GenerationAPI Code Generation
API Code GenerationBruno Pedro
 
Bridging the Gap Between APIs and Customers
Bridging the Gap Between APIs and CustomersBridging the Gap Between APIs and Customers
Bridging the Gap Between APIs and CustomersBruno Pedro
 
Who's using your API?
Who's using your API?Who's using your API?
Who's using your API?Bruno Pedro
 
Is OAuth Really Secure?
Is OAuth Really Secure?Is OAuth Really Secure?
Is OAuth Really Secure?Bruno Pedro
 
Link extraction and classification
Link extraction and classificationLink extraction and classification
Link extraction and classificationBruno Pedro
 
tarpipe WordPress plugin demo
tarpipe WordPress plugin demotarpipe WordPress plugin demo
tarpipe WordPress plugin demoBruno Pedro
 
Everything OAuth
Everything OAuthEverything OAuth
Everything OAuthBruno Pedro
 

Mehr von Bruno Pedro (20)

What are Web APIs
What are Web APIsWhat are Web APIs
What are Web APIs
 
Growing your business with an API
Growing your business with an APIGrowing your business with an API
Growing your business with an API
 
Product growth with an API
Product growth with an APIProduct growth with an API
Product growth with an API
 
How to grow your business with an API
How to grow your business with an APIHow to grow your business with an API
How to grow your business with an API
 
APIs Love to Chat
APIs Love to ChatAPIs Love to Chat
APIs Love to Chat
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
 
How to Automate API Discovery
How to Automate API DiscoveryHow to Automate API Discovery
How to Automate API Discovery
 
Api Design & The Paris Subway
Api Design & The Paris SubwayApi Design & The Paris Subway
Api Design & The Paris Subway
 
The importance of /me
The importance of /meThe importance of /me
The importance of /me
 
Maintainable consumers
Maintainable consumersMaintainable consumers
Maintainable consumers
 
API Code Generation
API Code GenerationAPI Code Generation
API Code Generation
 
Bridging the Gap Between APIs and Customers
Bridging the Gap Between APIs and CustomersBridging the Gap Between APIs and Customers
Bridging the Gap Between APIs and Customers
 
Who's using your API?
Who's using your API?Who's using your API?
Who's using your API?
 
node-fs
node-fsnode-fs
node-fs
 
Is OAuth Really Secure?
Is OAuth Really Secure?Is OAuth Really Secure?
Is OAuth Really Secure?
 
Link extraction and classification
Link extraction and classificationLink extraction and classification
Link extraction and classification
 
tarpipe WordPress plugin demo
tarpipe WordPress plugin demotarpipe WordPress plugin demo
tarpipe WordPress plugin demo
 
OAuth checklist
OAuth checklistOAuth checklist
OAuth checklist
 
Everything OAuth
Everything OAuthEverything OAuth
Everything OAuth
 

Web Services (in portuguese)

  • 1. Web Services em PHP PHP Summer School - 19 de Julho de 2007 Bruno Pedro <bpedro@computer.org>
  • 2. PHP Summer School Conteúdo • Conceitos • Web Services • SOAP • REST • JSON • Exercícios • Resumo Web Services em PHP 2
  • 3. PHP Summer School Web Services Source:The Server Side (http://tinyurl.com/38umxt) Web Services em PHP 3
  • 4. 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 Web Services em PHP 4
  • 5. PHP Summer School 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. PHP Summer School WSDL • UML use-case WSDL <obtém> <consome> aplicação Web Service Web Services em PHP 6
  • 7. 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 Web Services em PHP 7
  • 8. PHP Summer School UDDI • UML use-case UDDI <localiza WSDL> <obtém> WSDL <consome> aplicação Web Service Web Services em PHP 8
  • 9. 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) Web Services em PHP 9
  • 10. PHP Summer School Requisitos • PHP 5.2.2 • Suporte para SOAP • Extensão simplexml • Extensão DOM • Extensão JSON Web Services em PHP 10
  • 11. PHP Summer School SOAP Fonte: Prentice Hall (http://tinyurl.com/33dcch) Web Services em PHP 11
  • 12. 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 Web Services em PHP 12
  • 13. PHP Summer School Implementação: servidor namespace inicia o servidor assigna uma classe gere invocações Web Services em PHP 13
  • 14. PHP Summer School Implementação: cliente namespace endpoint mostra resultado Web Services em PHP 14
  • 15. PHP Summer School Output namespace resultado Web Services em PHP 15
  • 16. PHP Summer School Persistência • Problema: informação perde-se entre várias invocações do Web Service • Como resolver? Web Services em PHP 16
  • 17. 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 Web Services em PHP 17
  • 18. PHP Summer School Persistência: servidor persistência Web Services em PHP 18
  • 19. PHP Summer School Persistência: cliente grava informação mostra informação previamente gravada Web Services em PHP 19
  • 20. PHP Summer School SOAP: resumo • 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 20
  • 21. PHP Summer School 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 21
  • 22. 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 Web Services em PHP 22
  • 23. PHP Summer School Implementação: servidor gere a invocação Web Services em PHP 23
  • 24. PHP Summer School 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 24
  • 25. PHP Summer School Implementação: servidor cria um documento XML adiciona elementos devolve o resultado Web Services em PHP 25
  • 26. PHP Summer School 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 26
  • 27. PHP Summer School Implementação: cliente endpoint arguments load XML document output result Web Services em PHP 27
  • 28. PHP Summer School Output result Web Services em PHP 28
  • 29. PHP Summer School 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 29
  • 30. PHP Summer School JSON JSON Logo Source: json.org Web Services em PHP 30
  • 31. 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 Web Services em PHP 31
  • 32. PHP Summer School Implementação: servidor handle incoming call generate result output JSON string Web Services em PHP 32
  • 33. PHP Summer School Implementação: cliente endpoint parâmetros mostra output Web Services em PHP 33
  • 34. PHP Summer School Output resultado Web Services em PHP 34
  • 35. PHP Summer School 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 35
  • 36. PHP Summer School Exercício 1 • Implementação da Calculadora em Web Service SOAP • implementar servidor • implementar cliente • adicionar persistência de dados Web Services em PHP 36
  • 37. PHP Summer School Implementação: servidor Web Services em PHP 37
  • 38. PHP Summer School Implementação: servidor Web Services em PHP 38
  • 39. PHP Summer School Implementação: cliente Web Services em PHP 39
  • 40. PHP Summer School Exercício 2 • Consumir Web Service SAPO • implementar cliente SOAP • implementar cliente REST Web Services em PHP 40
  • 41. PHP Summer School Implementação: SOAP Web Services em PHP 41
  • 42. PHP Summer School Implementação: REST Web Services em PHP 42
  • 43. PHP Summer School Resumo • WSDL, UDDI, WS-I • SOAP • Persistência de dados • REST • Passagem de parâmetros • JSON Web Services em PHP 43
  • 44. PHP Summer School Questões? Web Services em PHP 44
  • 45. PHP Summer School 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 45