NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
ASP.NET - CURSO COMPLETO Autor: Júlio Battisti |
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Lição 107 - Capítulo 13 - Criando um Web Service | ||||||||||||||
Vamos criar um Web Service que tem um único método: Calcula_Imposto. Este método recebe três parâmetros:
Com base no estado de destino, o método calcula o valor do imposto sobre o preço final, já aplicado o desconto. Por simplicidade vamos considerar pedidos apenas para cinco estados e um valor padrão para os demais estados. O percentual de imposta para cada estado está descrito na Tabela 13.1.
Tabela 13.1 Imposta a ser aplicado para cada estado. Sintaxe para a criação de um Web Service. O primeiro passo é criar o código para o Web Service, código este que é gravado em um arquivo com a extensão .asmx. Não existe nenhuma tradução para a extensão asmx. Para caracterizar o código como um Web Service, incluímos a diretiva, como primeira linha do código: <%@ WebService Language=”C#” class=”NomeDaClasse” %> No nosso exemplo, vamos chamar a classe de “CalculosLegais”. Para definir a classe CalculosLegais utilizamos o seguinte comando: <%@ WebService Language=”C#” class=”CalculosLegais” %> O próximo passo é fazer referência ao namespace System.Web.Services. Este namespace contém as classes que dão suporte a criação de Web Services: using System.Web.Services; Agora implementamos a classe CalculosLegais e os métodos da classe. Um detalhe importante é que após o nome da classe, colocamos dois pontos e a palavra Webservice. Antes de cada método colocamos a palavra WebMethod entre colchetes. Vamos chamar o método que faz o cálculo dos impostos de: “CalculaImposto”. A estrutura básica para a definição do WebService CalculosLegais está indicada na Listagem 13.1. Listagem 13.1 – Estrutura básica para a criação de um Web Service. <%@ WebService Language="C#" class="CalculosLegais" %> using System.Web.Services; public class CalculosLegais : WebService { [WebMethod] public double CalculaImposto(long Total,int Desconto, string Estado) { long ValorComDesconto; ValorComDesconto = Total * (1-(Desconto/100)); switch (Estado) { case "RS": return ValorComDesconto*1.12; break; case "SC": return ValorComDesconto*1.15; break; case "PR": return ValorComDesconto*1.17; break; case "SP": return ValorComDesconto*1.2; break; case "RJ": return ValorComDesconto*1.22; break; default: return ValorComDesconto*1.25; break; } } } Digite o código da Listagem 13.1 e salve o mesmo em um arquivo chamado CalculosLegais.asmx, na pasta chap13, dentro da pasta wwwroot, conforme descrito no item: “Check List para acompanhar os exemplos deste livro”, no Capítulo 6. Uma maneira fácil de testar a funcionalidade de um Web Service. Com o Framework .NET podemos, facilmente, testar o funcionamento de um Web Service. Para isto basta acessar o arquivo .asmx, utilizando o navegador, como se fosse uma página .aspx normal. Para o nosso exemplo vamos utilizar o seguinte endereço: http://localhost/chap13/CalculosLegais.asmx Ao acessarmos um arquivo .asmx, o Framework .NET utiliza um template chamado DefaultWsdlHelpGenerator.aspx, que fica localizado na pasta \WinNT\Microsort.NET\Framework\[Version], onde WinNT é a pasta onde foi instalado o Windows 2000. O template DefaultWsdlHelpGenerator.aspx identifica a requisição para um arquivo .asmx e gera, automaticamente, uma página de saída, onde temos a possibilidade de testar os métodos do Web Service que está sendo acessado, conforme indicado na Figura 13.2.
Esta página trás informações genéricas sobre o Web Service que está sendo testado. Mas o principal componente desta página, para o nosso exemplo, é um link para o método CalculaImposto. Dê um clique neste link. Observe que são exibidos campos para que digitemos os valores para os parâmetros do método. Digite os valores indicados na Figura 13.3.
Dê um clique no botão Invoke. O método será executado e os resultados retornados em uma nova janela, no formato XML, conforme indicado na Figura 13.4.
Esta funcionaliade é bastane útil, pois nos permite testar os métodos de um Web Service antes de gerar um proxie (veremos com gerar proxies mais adiante) e utilizar o Web Service em nossas páginas ASP.NET (aprenderemos a utilizar Web Services em páginas ASP.NET mais adiante). Na Página da Figura 13.3, onde podemos definir valores para os parâmetros do método CalculaImposto, temos uma série de informações sobre os formatos possíveis para a comunicação com um Web Service. Conforme visto nesta página, temos três opções possíveis:
Para maiores detalhes sobre o protocolo SOAP, consulte o endereço: www.w3.org/TR/SOAP A seguir temos o exemplo de uma requisição e resposta utilizando o protocolo SOAP. Observe que os dados estão no formato XML: POST /Chap13/CalculosLegais.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/CalculaImposto" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope <soap:Body> <CalculaImposto xmlns="http://tempuri.org/"> <Total>long</Total> <Desconto>int</Desconto> <Estado>string</Estado> </CalculaImposto> </soap:Body> </soap:Envelope> HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope <soap:Body> <CalculaImpostoResponse xmlns="http://tempuri.org/"> <CalculaImpostoResult>double</CalculaImpostoResult> </CalculaImpostoResponse> </soap:Body> </soap:Envelope>
GET /Chap13/CalculosLegais.asmx/CalculaImposto?Total=string&Desconto=string&Estado=string HTTP/1.1 Host: localhost HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <double xmlns="http://tempuri.org/">double</double> Observe que os dados são passados, na forma de string, no próprio endereço. Onde temos Total=string, devemos substituir string pelo valor realmente definido para o parâmetro, como por exemplo: /Chap13/CalculosLegais.asmx/CalculaImposto?Total=1250&Desconto=25&Estado=RS
POST /Chap13/CalculosLegais.asmx/CalculaImposto HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: length Total=1250&Desconto=25&Estado=RS HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <double xmlns="http://tempuri.org/">1400</double> O nosso objetivo é criar um Web Service e poder utilizar as funcionalidades disponibilizadas por ele, em nossas páginas ASP.NET. Porém ainda temos um passo antes de que o Web Service CalculosLegais esteja disponível para uso. O passo que falta é a criação de um “proxy” para o Web Service. No próximo tópico veremos o que é um proxy e como criá-lo. |
||||||||||||||
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2024 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI