Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus...

74
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul © 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense Campus Sapucaia do Sul Web Services Professor: Ricardo Luis dos Santos IFSUL – Campus Sapucaia do Sul

Transcript of Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus...

Page 1: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 2: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

3

Rápida revisão da última aula

Page 3: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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”

Page 4: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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%’

Page 5: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 6: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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’

Page 7: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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?

Page 8: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 9: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 10: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 11: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 12: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 13: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 14: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 15: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 16: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 17: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 18: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 19: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 20: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 21: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 22: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 23: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

WEB SERVICES SOAP

26

Page 24: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 25: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

28

Web Services usando SOAP

Page 26: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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?

Page 27: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 28: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 29: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 30: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 31: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 32: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 33: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 34: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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 ...)

Page 35: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

• Pedido SOAP

38

Web Services usando SOAP

Page 36: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

• Resposta SOAP

39

Web Services usando SOAP

Page 37: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

WEB SERVICES REST

40

Page 38: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 39: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 40: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 41: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 42: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 43: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 44: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 45: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 46: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 47: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 48: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 49: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 50: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 51: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 52: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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!

Page 53: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 54: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 55: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 56: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 57: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 58: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 59: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 60: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 61: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 62: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 63: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 64: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 65: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 66: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 67: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 68: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 69: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

• Exemplo

72

Web Services usando REST

Page 70: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 71: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 72: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-GrandenseCampus Sapucaia do Sul

• SOAP e REST podem coexistir

75

Resumo

Page 73: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

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

Page 74: Web Services - Ricardo Luis · Web Services Professor: Ricardo Luis dos Santos IFSUL –Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense

Perguntas?