Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços...

33
Bruno C. de Paula Consumo e Criação de Serviços SOAP

Transcript of Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços...

Page 1: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Consumindo e Criando Web Services SOAP em .Net

Bruno C. de Paula

Consumo e Criação de Serviços SOAP

Page 2: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Tema de Estudo

• Vamos fazer um programa que acesse um web service;

• Vamos Compreender a criação de web services do tipo SOAP dentro do .Net;

Page 3: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação de Serviço SOAP em .Net

• 1) Menu File > New Web Site > ASP.NET Web Service;

• 2) Marque os métodos que serão do serviço com: o [WebMethod(Description = "Este método

converte de celsius para fahrenheit")]o public double CelsiusParaFahrenheit(double C)o ...

Page 4: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação de Serviço SOAP em .Net

• 3) Demais parâmetros possíveis:o BufferResponse: “bufferiza” ou não a resposta, útil quando

o método envia muitas informações;o CacheDuration: Número de segundos que a requisição ou

resposta ficará armazenada na memória do servidor;o Description: Descrição do serviço;o EnableSession: Permite o armazenamento do estado via

Cookie;o MessageName: usado para diferenciar o nome da

mensagem SOAP do nome do método.o TransactionOption: Implementação de transações.

Page 5: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Consumo de Serviço SOAP em .Net

• 1) Em um projeto já existente, selecione o projeto e selecione o menu Add Web Reference;

• 2) Cole o endereço do arquivo WSDL; Na PUCPR, muitas vezes você precisará salvar o arquivo WSDL

antes!

• 3) Será gerada uma classe de acesso ao serviço;• 4) Importante: não esqueça de configurar o web proxy!

Page 6: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Exercício de Fixação

• Faça um programa que faça uma busca no Google e retorne a popularidade de um termo;

• Define-se a popularidade como o número de vezes que o termo aparece na base do Google;

• A documentação para este serviço está disponível em:o http://code.google.com/apis/soapsearch/reference.html

• Neste Guia, estamos fazendo o código para Windows Forms;

• Se possível, crie seu código para ASP.NET.

Page 7: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Configuração do WebProxy

• Primeiramente, para poder utilizar os exemplos dentro da PUCPR você deve utilizar um WebProxy;

• // Colocar no início do código• using System.Net;• ...• // Antes de chamar o serviço (pode ser no construtor da classe do Form)• // Lembre-se: proxy, login, senha e domínio são caixas de texto que você deve

preencher com os valores referentes aos do proxy da PUC e ao seu login e senha.

• System.Net.WebProxy proxyObject = new System.Net.WebProxy(proxy.Text);• proxyObject.Credentials = new System.Net.NetworkCredential(login.Text,

senha.Text, dominio.Text);• WebRequest.DefaultWebProxy = proxyObject;

Page 8: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Configuração do WebProxy

• Nunca esqueça desse passo para que seu serviço funcione!

• Use o esqueleto de código fornecido!

•É o erro que vocês mais cometem!

Page 9: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Outras maneiras de configurar o webproxy (1/4)

• A linha abaixo obtém o webproxy padrão do Internet Explorer:

• System.Net.GlobalProxySelection.Select = System.Net.WebProxy.GetDefaultProxy();

• System.Net.GlobalProxySelection.Select.Credentials = new System.Net.NetworkCredential(“meu login", “minha senha", "meu domínio");

• Cuidado! Não deixe sua senha na PUC no código-fonte!

Page 10: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Outras maneiras de configurar o webproxy (2/4)

• WebRequest.DefaultWebProxy = null;• System.Net.GlobalProxySelection.Select = new

System.Net.WebProxy("proxy01.pucpr.br", 3129);• System.Net.GlobalProxySelection.Select.Credentia

ls = new System.Net.NetworkCredential(login.Text, senha.Text, "");

• WebRequest.DefaultWebProxy.Credentials = new NetworkCredential (“meu login", “minha senha", "meu domínio");

Page 11: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Outras maneiras de configurar o webproxy (3/4)

• System.Net.Uri proxyURI = new System.Net.Uri("http://64.202.165.130:3128");

• System.Net.GlobalProxySelection.Select = new

System.Net.WebProxy(proxyURI);

Page 12: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Outras maneiras de configurar o webproxy (4/4)

• System.Net.WebProxy proxy = new System.Net.WebProxy ("proxy02.pucpr.br:3125" ); proxy.Credentials = new System.Net.NetworkCredential("SEU LOGIN", "SUA SENHA", "cwbdis");

Page 13: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Endereço do Web Proxy?

• Para obter o proxy da PUC, acesse o arquivo:o http://www.pucpr.br/proxy.pac

• Outra maneira de obter o endereço do webproxy é verificar nas opções da Internet no Internet Explorer;

Page 14: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 1

• Crie um novo projeto no Visual Studio.Net.

Page 15: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 2

• Crie uma aplicação Windows tradicional;

Page 16: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 3

• Coloque um componente que será destinado ao texto de busca, um botão e uma caixa referente ao resultado.

Page 17: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 4

• Coloque nomes significativos em cada caixa;

Page 18: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 5

• Agora, vamos fazer uma referência ao arquivo wsdl do Google, que contém a descrição de quais métodos existem no Web Service.

• O arquivo está disponível em:o http://api.google.com/

GoogleSearch.wsdl

Page 19: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 6

• Coloque a url no campo indicado e pesquise os métodos disponíveis.

Page 20: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 7 – IMPORTANTE!!!

• A situação ao lado acontece quando você está debaixo de um servidor dfe webproxy (como a PUCPR).

• Nesse caso, SALVE o arquivo wsdl em disco e carregue a partir de lá!

Page 21: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 8 (Opcional)

• Você precisa usar a biblioteca System.Web.Services.dll;

• Adicione a referência a essa biblioteca.

Page 22: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 9 (Opcional)

• Clique duas vezes e pressione o botão ok para adicionar essa referência.

Page 23: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 10 – código de acesso ao Google

Page 24: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 16

• Obtenha uma chave no site:o http://code.google.com/apis/soapsearch/reference.htmlo Não está mais disponível!

Page 25: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Passo 17

• Fim! Agora é só executar sua aplicação.• Dentro da sua aplicação, você consegue usar

a busca do Google!• Qual pode ser a utilidade disso?

Page 26: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Exercício de Fixação

• Vamos criar em .Net um serviço simples que faz conversões de medidas de temperatura:o Celsius => Fahrenheit;o Fahrenheit => Celsius;o Kelvin => Celsius;o Celsius => Kelvin.

Page 27: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação passo a passo

• 1) Crie um novo Web Site e selecione a opção ASP.Net Web Service;

Page 28: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação passo a passo

• 2) Será criado um esqueleto semelhante a:

Page 29: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação passo a passo

• 3) Neste esqueleto, cada método do web service é representado através de um atributo [WebMethod] anotando cada método:

Page 30: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação passo a passo

• 4) Para testar o serviço você deve executar o arquivo com extensão asmx;

• 5) Observe que o wsdl está no link Service Description.

Page 31: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação passo a passo

• 6) Além de criar o método, você também deve se preocupar com os parâmetros nomeados do atributo:o Exemplo:o [WebMethod(Description = "Este método converte de celsius para

fahrenheit")]o public double CelsiusParaFahrenheit(double C)

• {• return ...;• }• No exemplo acima o atributo Description indica uma descrição

do serviço.

Page 32: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Criação passo a passo

• 7) Parâmetros nomeados possíveis:o BufferResponse: “bufferiza” ou não a resposta, útil quando o

método envia muitas informações;o CacheDuration: Número de segundos que a requisição ou

resposta ficará armazenada na memória do servidor;o Description: Descrição do serviço;o EnableSession: Permite o armazenamento do estado via Cookie;o MessageName: usado para diferenciar o nome da mensagem

SOAP do nome do método.o TransactionOption: Implementação de transações.

• Em nosso exercício vamos usar só o Description;• Complete o exercício com o código dos métodos.

Page 33: Consumindo e Criando Web Services SOAP em.Net Bruno C. de Paula Consumo e Criação de Serviços SOAP.

Links relacionados

• http://code.google.com/apis/soapsearch/reference.htmlo Serviço do Google de busca;o Indisponível atualmente!