Web Services

WebServices

Um Web Service é uma classe escrita em uma linguagem suportada pela plataforma .NET que pode ser acessada via protocolo http. Isso significa dizer que você pode acessar qualquer Web Service disponível na Web e utilizar todas as funcionalidades do mesmo.

O acesso sempre será via http, mas internamente existe uma string XML que está empacotada em um protocolo SOAP (Simple Object Access Protocol). O SOAP é um padrão aberto criado pela Microsoft, Ariba e IBM para padronizar a transferência de dados em diversas aplicações, por isso, se dá em XML.

O uso de Web Service simplesmente é fantástico porque você pode acessar rotinas de validação de cartão de crédito, endereçamento postal (CEP), calcular valores de fretes dos sites de comércio eletrônico, news de empresas, enfim, uma gama gigantesca de produtos. A grande diferença em relação ao desenvolvimento atual é que a empresa que desenvolve uma DLL, não precisa ficar distribuindo para todos os clientes, esta estará armazenada em um único lugar que será acessada via http. Isso sem falar em atualizações de DLL atuais, o que pode causar um transtorno para todos.

Outra vantagem é que o Web Service é transparente para o Firewall de uma empresa, pois, como é uma string XML, então é interpretada como um arquivo "texto". Sendo assim, não é preciso pedir autorização do Firewall para entrar.

Para criar um Web Service crie um novo projeto com o nome de CalculaFrete e do tipo ASP.NET Web Service. O objetivo deste exemplo é criar uma rotina de cálculo de frete em função do estado selecionado pelo Internauta.

Web_Services_4_1.jpg

Digite o código que efetua o cálculo do frete. Note que os argumentos são o valor do pedido e o estado. Isso pode ser adaptado para qualquer empresa de transporte, sendo que as taxas fiquem sempre atualizadas no Web Service e a cada consulta do Internauta, os valores sempre estarão atualizados. A palavra Description será utilizada na documentação do Web Service.

<WebMethod(Description:="Calcula o frete, informe o valor do pedido e o estado")> Public Function Frete(ByVal vrPedido As Double, ByVal UF As String) As Double 
Dim taxa As Double 
Select Case UF.ToUpper() 
Case "SP" 
taxa = 0.1 
Case "SC" 
taxa = 0.09 
Case "PR" 
taxa = 0.08 
Case Else 
taxa = 0.11 
End Select 
Frete = taxa * vrPedido 
End Function 

Salve e compile o Web Service. Para testá-lo, abra o Internet Explorer e chame o Web Service via http. Cabe ressaltar que a extensão do arquivo é .asmx.

Web_Services_4_2.jpg

Note a descrição do Web Service. Clique no link de Frete para testá-lo, informe os dados e clique no botão Invoke. O resultado será um arquivo XML com o retorno do cálculo da função do Web Service.

Web_Services_4_3.jpg

Web_Services_4_4.jpg

Consumindo um Web Service

Crie uma aplicação chamada Frete_WS.aspx do tipo ASP.NET Web Application com os seguintes controles no formulário:

Web_Services_4_5.jpg

O DropDown de estado contém a lista de estados com as respectivas siglas. Você pode montar isso através da propriedade Items do DropDown.

O próximo passo é inserir uma referência para o Web Service, portanto, selecione o menu Project / Add Web Reference e informe o local onde está o Web Service criado anteriormente (https://localhost/CalculaFrete/CalculaFrete.asmx). Cabe ressaltar que você pode inserir qualquer endereço que contenha um Web Service, como por exemplo, http://terraservice.net/terraservice.asmx. Clique no botão Add Reference.

Web_Services_4_6.jpg

Dê um duplo clique no botão Calcular Frete e insira o seguinte código:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
Dim valor As Double = Convert.ToDouble(TextBox1.Text) 
Dim uf As String = DropDownList1.SelectedItem.Value 
Dim vrFrete As Double 
Dim CalculoFrete As New localhost.CalculaFrete() 
vrFrete = CalculoFrete.Frete(valor, uf) 
Label1.Text = FormatNumber(vrFrete, 2) 
Label2.Text = FormatNumber(vrFrete + valor, 2) 
End Sub 

Perceba no código que você pode definir as variáveis e na mesma linha atribuir os valores. Para usar o Web Service, crie uma instância referenciando o local e o nome do mesmo. Em seguida todos os métodos estarão disponíveis para uso. Nesse caso são passados dois argumentos como o método Frete.

Se você não conhece XML não se assuste, pois o desenvolvimento também é totalmente transparente, veja que não escrevi nenhuma linha de XML. Com isso, você desenvolvedor ganha um horizonte de programação fantástico, podendo contribuir cada vez mais para facilitar e criar grandes aplicações.

Após este artigo, crie e disponibilize seus Web Services para o mundo utilizar.

Renato Haddad

rehaddad@msn.com 

Most Valuable Professional

Autor dos livros: "C# - Aplicações e Soluções" e "VB.NET - Conceitos e Aplicações" - Editora Érica.

Instrutor de VB.NET e C# da MAS Informática (www.mas.com.br)

Faça o download deste documento:
·
downl.gif Web Services
 formato Word, 144 Kb