André Ricardo – arsl Danilo Veras – dlv Leila Soriano – lssta Luis Otávio – locb.
Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus...
Transcript of Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus...
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
© 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Web ServicesProfessor: Ricardo Luis dos Santos
IFSUL – Campus Sapucaia do Sul
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
3
Rápida revisão da última aula
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
4
Rápida revisão da última aula
• 1 – Listar o filme com o id 475
• 2 – Listar todos os filmes com o título que inicia com “Star Wars:”
• 3 – Listar os clientes que possuem o primeiro nome “Paulo”
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
5
Rápida revisão da última aula
• 1 – Listar o filme com o id 475
• 2 – Listar todos os filmes com o título que inicia com “Star Wars:”
• 3 – Listar os clientes que possuem o primeiro nome “Paulo”
Select filme from Filme as filme where filme.id = 475
Select filme from Filme as filme where filme.nome like ‘Star Wars:%’
Select cliente from Cliente as cliente where cliente.nome like ‘Paulo%’
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
6
Rápida revisão da última aula
• 4 – Listar a quantidade de filmes cadastrados
• 5 – Listar o nome do cliente que está com o filme de id 100
• 6 – Listar a quantidade de clientes que moram no RS
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
7
Rápida revisão da última aula
• 4 – Listar a quantidade de filmes cadastrados
• 5 – Listar o nome do cliente que está com o filme de id 100
• 6 – Listar a quantidade de clientes que moram no RS
Select COUNT(filme.id) from Filme as filme
Select filme.cliente.nome from Filme as filme where filme.id = 100
Select COUNT(cliente.id) from Cliente as cliente left join cliente.endereco asendereco where endereco.uf = ‘RS’
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
8
Rápida revisão da última aula
• 7 – Listar todos os clientes que nasceram entre 1994 e 1998
• 8 – Qual a diferença entre os métodos getSingleResult() e getResultList()?
• 9 – Pra que servem as Named Queries?
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
9
Rápida revisão da última aula
• 7 – Listar todos os clientes que nasceram entre 1994 e 1998
• 8 – Qual a diferença entre os métodos getSingleResult() e getResultList()?
• 9 – Pra que servem as Named Queries?Named Queries são utilizadas com o intuito de reutilizar código, pois permitem
escrever a instrução uma única vez e reutilizá-las mesmo com parâmetros diferentes.
Select cliente from Cliente as cliente where cliente.nascimento between‘1994/01/01’ and ‘1998/12/31’
O getSingleResult() retorna apenas um valor que deve ser “convertido” para o tipo apropriado (int, long, string). O getResultList() retorna uma lista de valores
os quais devem ser armazenados em uma lista do mesmo tipo
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
10
Rápida revisão da última aula
• Novo projeto com suporte a HIBERNATE (JPA) e JERSEY (JAX-RS)
• Material de apoio sobre Web Services
• www.ricardoluis.com
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Introdução
• Arquitetura Orientada a Serviços
• Web Services
• Web Services usando SOAP
• Web Services usando REST
• SOAP ou REST?
• Resumo
• Bibliografia
13
Agenda
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Em 1990 havia diversas plataformas utilizando diversas linguagens de programação e que não se comunicavam
• Surgiram pela necessidade de padronizar comunicações entre diferentes plataformas
• Web services foram padronizados W3C, um consórcio que cria padrões para conteúdo da Web
14
Introdução
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Organiza aplicações através de conjunto de interações de serviços que são acessados através de interfaces e protocolos padronizados
• Interfaces são auto-descritivas e baseadas em padrões abertos amplamente utilizados
15
Arquitetura Orientada a Serviços
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• São definidos três papéis
• Diretório para registro de serviços – Repositório para publicação e localização de interfaces dos serviços
• Provedor de Serviços – Responsável por publicar interfaces dos serviços que provê, bem como atender requisições dos clientes
• Cliente – Aplicação ou outro serviço que envia requisições a um Serviço
16
Arquitetura Orientada a Serviços
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• São definidos três papéis
• Diretório para registro de serviços – Repositório para publicação elocalização de interfaces dos serviços
• Provedor de Serviços – Responsável por publicar interfaces dosserviços que provê, bem como atender requisições dos clientes
• Cliente – Aplicação ou outro serviço que envia requisições a um Serviço
17
Arquitetura Orientada a Serviços
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Mas afinal, o que são web services?
• São aplicações auto-contidas, cujas interfaces e ligaçõessão definidas, publicadas, localizadas e dinamicamente invocadas
• Aplicações que interagem com outras através da troca de mensagens
• Coleção de operações sobre recursos (programas, objetos, banco dedados) que podem ser usadas por clientes através da Internet
18
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Benefícios
• Interoperabilidade
• Independência de plataforma de hardware e software
• Reusabilidade
• Como resolvem problemas pequenos e bem definidos podem ser utilizados em diversas aplicações por diferentes clientes
• Localização transparente
• Informações sobre a definição e localização são publicadas em um repositório e estão acessíveis a uma variedade de clientes, independente da localizações dos mesmos
19
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Benefícios
• Padronização
• Invocado através de tecnologias padronizadas (protocolos, mecanismos de publicação e de busca) e amplamente difundidas na Internet
• Fracamente acoplado
• Não requer o conhecimento prévio de qualquer estrutura interna presente no lado do cliente ou do serviço
• Facilidade de acesso
• Pode transpor firewalls baseados em filtros de pacotes (portas 80 e 443)
20
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Servidor Web (Web server) != Serviço Web (Web Service)
• Web Server – implementa o protocolo HTTP
• Web Service– provê um serviço baseado nas operações que foram definidas em sua interface
21
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Representação Externa de Dados
• Acordo para representar dados primitivos e estrutura de dados em um formato padrão
• eXtensible Markup Language (XML)
• JavaScript Object Notation (JSON)
• Empacotamento
• Colocar uma coleção de dados dentro de um formato adequado para transmissão em uma mensagem
• Desempacotamento
• Abrir uma mensagem e gerar a coleção de dados equivalente no destino
22
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• XML permite ser estendida
• Usuários podem criar suas próprias marcações (tags)
23
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• JSON
• Formato bem aceito em aplicações web, principalmente pelo fato de ser simples e leve
24
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Baseados em SOAP
• Simple Object Access Protocol
• Possui diversas especificações para segurança, confiabilidade, orquestração, entre outros
• Camada de transporte genérica (não necessita de HTTP)
• Baseados em REST
• REpresentational State Transfer
• Fundamentado nos conceitos da WWW, que são: métodos HTTP, URI e linguagens de marcação (HTML, XML ou JSON)
• Simples e leve
25
Web Services
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
WEB SERVICES SOAP
26
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Descreve a interface do serviço para essa aplicação utilizando uma linguagem padrão
• Web Services Description Language (WSDL)
• Disponibiliza esse documento (de alguma forma)
• Universal Description, Discovery and Integration (UDDI)
• Troca mensagens XML
• SOAP
27
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
28
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Web Services Description Language – WSDL
29
Web Services usando SOAP
Quais são os serviços oferecidos?
Quais as informações necessárias para
invocar um serviço?
Como cliente e servidor sabem como
processar as requisições?
Em qual formato o serviço deve enviar as
informações para o cliente?
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Web Services Description Language – WSDL
30
Web Services usando SOAP
Quais são os serviços oferecidos?
Quais as informações necessárias para
invocar um serviço?
Como cliente e servidor sabem como
processar as requisições?
Em qual formato o serviço deve enviar as
informações para o cliente?
WSDL é uma gramática em XML para especificar interfaces de Web Services
•Operações disponíveis
•Tipos de dados
•Protocolos utilizados
•Localização do Web Service
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Um documento WSDL é composto por três elementos principais
• Definição dos tipos de dados (types)
• Especifica a estrutura e o conteúdo das mensagens
• Operações abstratas (messages e operation)
• Descreve as operações que poderão
ser executadas
• Associação dos serviços (port)
• Especifica como mapear as
operações nos protocolos de rede
utilizados para o transporte
31
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplo de Web Service: Calculadora.java
32
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Documento WSDL – Tipos dos dados das mensagens
33
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Documento WSDL – Operações abstratas
34
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Documento WSDL – Associação dos serviços
35
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Uma mensagem SOAP consiste de
• Envelope
• Elemento raiz no documento XML que representa a mensagem SOAP
• Header (opcional)
• Oferece mecanismos para estender a mensagem
• Informações de roteamento, segurança, coordenação ...
• Body
• Document - A RPC (Remote Procedure Call) em si faz
parte deste elemento
• Fault (opcional)
36
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Uma mensagem SOAP consiste de
• Envelope
• Elemento raiz no documento XML que representa a mensagem SOAP
• Header (opcional)
• Oferece mecanismos para estender a mensagem
• Informações de roteamento, segurança, coordenação ...
• Body
• Document - A RPC em si faz parte deste elemento
• Fault (opcional)
37
Web Services usando SOAP
IMPORTANTE!!!
A comunicação pode ser síncrona ou assíncrona. Mensagens SOAP podem
ser transportadas sobre diferentes protocolos (HTTP, HTTPS, SMTP ...)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Pedido SOAP
38
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Resposta SOAP
39
Web Services usando SOAP
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
WEB SERVICES REST
40
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST se baseia no comportamento de aplicações Web
• Recursos estão dispostos em uma rede de páginas (uma máquina de estado virtual)
• O usuário progride na aplicação através de links (transições de estado), que resulta na próxima página (estado seguinte da aplicação)
41
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST se baseia no comportamento de aplicações Web
• Recursos estão dispostos em uma rede de páginas (uma máquina de estado virtual)
• O usuário progride na aplicação através de links (transições de estado), que resulta na próxima página (estado seguinte da aplicação)
42
Web Services usando REST
Cliente Recurso
http://www.ricardoluis.com/aulas/webservices
webservices.html
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
43
Web Services usando REST
URIs de serviços e recursos
3
4
5
1
2
6
7
8
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
44
Web Services usando REST
URIs de serviços e recursos
3
4
5
1
2
6
7
8
6
aplicação inicia pelatransição para o estadoidentificado pela URI 6
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
45
Web Services usando REST
URIs de serviços e recursos
3
4
5
1
2
6
7
8
6
4
3
5
representação do estadocontém links paraos estados 4, 3 e 5
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
46
Web Services usando REST
URIs de serviços e recursos
3
4
5
1
2
6
7
8
6
4
3
5
3
aplicação escolhe pela transiçãopara o estado identificadopela URI 3
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
47
Web Services usando REST
URIs de serviços e recursos
3
4
5
1
2
6
7
8
6
4
3
5
35
1
representação do estadocontém links paraos estados 1 e 5
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
48
Web Services usando REST
URIs de serviços e recursos
3
4
5
1
2
6
7
8
6
4
3
5
35
11
aplicação escolhe pela transiçãopara o estado identificadopela URI 1
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
49
Web Services usando REST
URIs de serviços e recursos
3
4
5
1
2
6
7
8
6
4
3
5
35
11
estado ativo nãocontém link paraprogressão
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
• Recursos
• Na web todos os recursos possuem uma URI
• http://www.ricardoluis.com/index.html
• http://www.ifsul.edu.br/sapucaia/bloco/a/laboratorio/webservices
• Ações
• A web possui uma interface uniforme e restrita para interagir com os recursos
• Métodos de requisições HTTP: GET, POST, PUT e DELETE
• Representações
• Como os dados são retornados e representados para os clientes
• Ex: HTML, XML, JSON
50
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• REST funcionamento e definições
• Recursos
• Na web todos os recursos possuem uma URI
• http://www.ricardoluis.com/index.html
• http://www.ifrs.edu.br/osorio/bloco/a/laboratorio/webservices
• Ações
• A web possui uma interface uniforme e restrita para interagir com os recursos
• Métodos de requisições HTTP: GET, POST, PUT e DELETE
• Representações
• Como os dados são retornados e representados para os clientes
• Ex: HTML, XML, JSON
51
Web Services usando REST
IMPORTANTE!!!
SOAP usa o HTTP como protocolo de transporte, enquanto que REST usa o
HTTP como protocolo de aplicação
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Recursos
• Qualquer informação pode ser caracterizada como um recurso
• Ex: página, imagem, coleção de recursos, entre outros
• Recursos são identificados por uma URI (Uniform ResourceIdentifier)
• Identificador único e que permite endereçar um recurso na web
• Uma URI identifica um único recurso, porém um recurso pode possuir mais de uma URI (relação muitos-para-um)
52
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Formato da URI
scheme://host:port/path?queryString#fragment
• scheme– HTTP, HTTPS
• host – nome ou IP
• port– implícito ao esquema (e.g., 80 para http) ou explícito
• path – segmentos de texto delimitados por /
• queryString– lista de parâmetros (nome=valor) delimitados por &
• fragment– ponto particular dentro um documento
53
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Formato da URI
http://www.ifsul.edu.br/campus
http://www.ifsul.edu.br/campus/sapucaia
http://www.ifsul.edu.br/campus/sapucaia/bloco
http://www.ifsul.edu.br/campus/sapucaia/bloco/a
http://www.ifsul.edu.br/campus/sapucaia/laboratorio?id=4&bloco=a
http://www.ifsul.edu.br/campus/laboratorio?id=4&capus=sapucaia&bloco=a
54
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Formato da URI
http://www.ifsul.edu.br/campus
http://www.ifsul.edu.br/campus/sapucaia
http://www.ifsul.edu.br/campus/sapucaia/bloco
http://www.ifsul.edu.br/campus/sapucaia/bloco/a
http://www.ifsul.edu.br/campus/sapucaia/laboratorio?id=4&bloco=a
http://www.ifsul.edu.br/campus/laboratorio?id=4&capus=sapucaia&bloco=a
55
Web Services usando REST
IMPORTANTE!!!
Ao percorrer o caminho genérico para o específico, você está navegando pelos dados!
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Ações
• Determinam como as representações dos recursos são trocadas entre cliente e servidor e o que deve ser feito
• Permitem interagir com um determinado recurso
• CRUD (Create, Read, Update and Delete)
56
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• GET
• Obtém informações sobre um recurso
• Obter a lista com todos os campi:
• GET http://www.ifrs.edu.br/campus
• Obter a capacidade do laboratório de webservices
• GET http://www.ifrs.edu.br/campus/osorio/laboratorio/webservices/capacidade
57
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• POST
• Cria um determinado recurso
• Content: {bloco,laboratorios[],equipamentos[],capacidade...}
• POST http://www.ifrs.edu.br/campus/osorio/
58
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• PUT
• Atualiza um determinado recurso se existente, caso não exista um novo recurso é criado
• Content: {bloco,laboratorio,equipamentos[],capacidade...}
• PUT http://www.ifrs.edu.br/campus/osorio/
59
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• DELETE
• Remove um determinado recurso
• DELETE http://www.ifrs.edu.br/campus/osorio/laboratorio/webservices
60
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Pedido e Resposta em REST
61
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplos de Web Services – Busca por CEP
• http://viacep.com.br/
62
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplos de Web Services – Busca por CEP
• http://viacep.com.br/
• http://viacep.com.br/ws/90030-041/xml/
63
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplos de Web Services – Busca por CEP
• http://viacep.com.br/
• http://viacep.com.br/ws/90030-041/json/
64
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplos de Web Services – Previsão do Tempo
• http://servicos.cptec.inpe.br/XML/
65
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplos de Web Services – Previsão do Tempo
• http://servicos.cptec.inpe.br/XML/listaCidades?city=porto%20alegre
66
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplos de Web Services – Previsão do Tempo
• http://servicos.cptec.inpe.br/XML/cidade/237/previsao.xml
67
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplo – Loja Virtual
68
Web Services usando REST
Anunciar produto Buscar ofertas de um produto
Buscar produtos de um fornecedor Buscar melhores ofertas
Cadastrar usuários Avaliar produtos
Realizar uma oferta Buscar avaliações de um usuário
Retirar uma oferta Trocar senha do usuário
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplo – Loja Virtual
69
Web Services usando REST
URI Métodos
/produto/{id} GET, PUT
/produto/{id}/ofertas GET, POST
/oferta/{id} GET, PUT, DELETE
/usuario POST
/usuario/{id} GET, PUT
/usuario/{id}/avaliacoes GET
/usuario/{id}/produtos GET, POST
/avaliação/de/{id}/para/{id} POST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Passos para desenvolver um Web Service em REST
• Definir os recursos
• Definir as URIs
• Definir os formatos (XML, JSON, TEXTO?)
• Quais métodos serão aceitos em cada recurso?
70
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplo
• Arthur possui uma transportadora e desenvolveu um sistema web de encomendas online. Então, ele gostaria de integrar com diversas lojas virtuais existentes. Arthur precisa criar um Web Service Rest para o cálculo do frete
71
Web Services usando REST
Peso (KG) RS Outros Estados
Até 1 R$ 20,00 R$ 40,00
Até 5 R$ 30,00 R$ 50,00
Mais que 5 R$ 50,00 R$ 70,00
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• Exemplo
72
Web Services usando REST
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
73
SOAP ou REST?
# SOAP REST
O que é? Especificação padrão para WS Estilo de arquitetura para WS
Descrição do Serviço WSDL Não padronizado
Descoberta dos Serviços UDDI Não possui
Tamanho das mensagens Grandes Pequenas em relação ao SOAP
Implementação de chamadas AJAX?
Possível, mas de difícil implementação
Simples e fácil implementação
Desempenho Maior uso de CPU Menor uso de CPU
Indicação de uso Aplicações seguras, assíncronas Recursos limitados, otimização
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• SOA permite organizar aplicações que são acessadas através de interfaces e protocolos padronizados
• Web services são aplicações auto-contidas
• A escolha de SOAP ou REST depende mais da aplicação do Web service que será desenvolvida
• Web services podem integrar e interagir com aplicativos dispostos em diferentes locais, escritos em diferentes linguagens e residentes em diferentes arquiteturas
74
Resumo
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
• SOAP e REST podem coexistir
75
Resumo
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul
76
Bibliografia
• CHAPPELL, D.; JEWELL, T. Java Web Services. California: O'Reilly Books, 2002.
• COULOURIS, G; DOLLIMORE, J; KINDBERG, T; BLAIR, G. Sistemas Distribuídos - 5ed: Conceitos e Projeto. Bookman Editora, 2013.
• UDDI, Specification, 2001. Disponível em: http://www.uddi.org/specification.html
• Webber, J.; Parastatidis, S.; Robinson, I.;. REST na Prática Hipermídia e Arquitetura de Sistemas. O'Reilly Media. 2010.
• WSDL Specification, 2001 – W3C. Disponível em: http://www.w3.org/TR/wsdl
Perguntas?