Criando e consumindo Web Service em C-Sharp - Parte 1 - C# Brasil


Criando e consumindo Web Service em C-Sharp – Parte 1

Em mais um artigo, vou explicar como criar nosso primeiro Web service e ainda consumi-lo tanto em uma aplicação Windows Form quanto em um Web Form. Como primeira parte dessa publicação iremos criar nosso Web service.

Mais o que vem a ser o Web service?


Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Os Web services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria “linguagem”, que é traduzida para uma linguagem universal, o formato XML. (fonte: Wikipédia)

Um Web service nada mais é que uma Classe seja ela em C-Sharp quanto VB.NET. Essa classe ou Web service pode ser consumido por uma aplicação Web Form, Windows Form ou até mesmo outros Web service e detalhe, independente da linguagem que eles foram criados.
Suponhamos que você tenha criado um Web service em VB.NET com todas as regras de negocio da sua empresa onde suas aplicações Web Form irá consumi-lo, e se futuramente você pretende disponibiliza-lo para parceiros ou clientes isso não será problema, mesmo que seus parceiros possuam aplicações em C-Sharp, Java, Delphi ou qualquer outra linguagem que venha a surgir e tenha a capacidade de consumir um Web Service.

Então agora vamos ao que interessa.

1- Abra o Visual Studio.
2- Crie um novo ASP.NET Web Service em File > New > Web Site…

Seu código inicialmente será igual ao código abaixo.


using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
	public Service()
	{
		//Uncomment the following line if using designed components
		//InitializeComponent();
	}

	[WebMethod]
	public string HelloWorld()
	{
		return "Hello World";
	}
}

Iremos criar um WebMetodo que possibilita a uma aplicação realizar as 4 Operações Básicas da Matemática, mais o detalhe é que daremos a possibilidade de se escolher qual delas usar no mesmo WebMetodo.

Para isso crie uma nova classe do tipo Enum e nosso código ficará como o exemplo abaixo:


using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
	public Service()
	{
		//Uncomment the following line if using designed components
		//InitializeComponent();
	}

	[WebMethod]
	public string HelloWorld()
	{
		return "Hello World";
	}
}

public enum OperacoesBasicas
{
	Adicao = 0,
	Divisao = 1,
	Multiplicacao = 2,
	Subtracao = 3
}

Feito isso iremos criar então um novo WebMetodo chamado Calculadora onde iremos informar 2 valores do Tipo Decimal, a Tipo da Operação e será retornado um outro valor do tipo Decimal. Veja o código abaixo:


[WebMethod]
public decimal Calculadora(decimal ValorA, decimal ValorB, OperacoesBasicas TipoOperacao)
{
	decimal ResultadoAB = 0;

	switch (TipoOperacao)
	{
		case OperacoesBasicas.Adicao:
		{
			ResultadoAB = decimal.Add(ValorA, ValorB);
			break;
		}
		case OperacoesBasicas.Divisao:
		{
			ResultadoAB = decimal.Divide(ValorA, ValorB);
			break;
		}
		case OperacoesBasicas.Multiplicacao:
		{
			ResultadoAB = decimal.Multiply(ValorA, ValorB);
			break;
		}
		case OperacoesBasicas.Subtracao:
		{
			ResultadoAB = decimal.Subtract(ValorA, ValorB);
			break;
		}
	}

	return ResultadoAB;
}

Pronto, nosso básico Web Service está pronto. Agora execute o Web Service e será aberto uma página com a lista de WebMetodos do seu Web Service. Clique no link Calculadora e será aberto outra página para entrada dos valores.

Para realizar as operações você deverá informar o TipoOperacao.

  • Adicao ou 0
  • Divisao ou 1
  • Multiplicacao ou 2
  • Subtracao ou 3

Será aberto uma outra página com o resultado.

Viu como é simples?

Se quiser realizar o download do exemplo criado: Aqui

Espero que tenham entendido e no próximo artigo irei explicar como consumir esse mesmo Web Service em Windows Form.

Abraço e sucesso!!!

Postado em ASP.NET, C#, Visual Studio | Marcado como , , , ,

12 respostas para “Criando e consumindo Web Service em C-Sharp – Parte 1”

  1. Andrew disse:

    Muito boa a explicação, valeu

  2. Thiago disse:

    Gostaria de saber no [WebMethod] posso ter vários métodos?

  3. Marcos123 disse:

    Bom dia, como eu faço para passar os parâmetros pela URL ?

  4. Olá Marcos

    Veja resposta aqui.

    Abraço

  5. E ai Raphael, gostaria de saber como que eu faço se o caso em vez de parâmetros primitivos, gostaria de enviar parâmetros complexo, por exemplo um objeto -> Cliente vamos supor? Como eu faria no caso???

  6. Rafael, não irá mudar muita coisa. Você pode fazer da seguinte forma.

    public class ParametroCalculadora
    {
    public decimal ValorA { get; set; }
    public decimal ValorB { get; set; }
    public OperacoesBasicas TipoOperacao { get; set; }
    }

    [WebMethod]
    public decimal Calculadora(ParametroCalculadora paramCalc)
    {
    decimal ResultadoAB = 0;

    switch (paramCalc.TipoOperacao)
    {
    case OperacoesBasicas.Adicao:
    {
    ResultadoAB = decimal.Add(paramCalc.ValorA, paramCalc.ValorB);
    break;
    }
    case OperacoesBasicas.Divisao:
    {
    ResultadoAB = decimal.Divide(paramCalc.ValorA, paramCalc.ValorB);
    break;
    }
    case OperacoesBasicas.Multiplicacao:
    {
    ResultadoAB = decimal.Multiply(paramCalc.ValorA, paramCalc.ValorB);
    break;
    }
    case OperacoesBasicas.Subtracao:
    {
    ResultadoAB = decimal.Subtract(paramCalc.ValorA, paramCalc.ValorB);
    break;
    }
    }

    return ResultadoAB;
    }}

    Dessa forma, o método irá receber um parâmetro que está presente.

  7. Luiz disse:

    Olá

    Estou começando a analisar a ferramenta, ou seja, Visual Studio, visto que há 12 anos venho utilizando outras ferramentas para desenvolvimento. Ao ler os 2 artigos, muito bom por sinal – parabéns, me surgiu as seguintes dúvidas:

    É possível criar um web service utilizando o VS Express para a Web 2012?

    Se sim, como pode ser feito? Visto que eu instalei em minha máquina e não conseguir achar a opção para isto.

    Se não, o VS 2012 Professional tem essa opção?

    Onde posso adquirir esta versão?

  8. Abilio Gune disse:

    muito bom o exemplo, simples e objectivo

  9. Leonardo disse:

    Cara, como ele sabe que é para somar, subtrair, dividir se nao informamos os operadores matemáticos?

  10. amanda disse:

    estou com grande dificuldade.
    criei um windows form para calcular a media de numeros contidos em uma arquivo txt.
    agora preciso consumir ele como o web service.como faco isso?

  11. Marcio disse:

    Olá pessoal me ajudem ai tenho que criar um webservice que tenha as seguintes funções renovar livros e cadastrar livros quem pode me ajudar? me passa um e-mail para que possamos ver com realizar essa atividade

    marciodmk@gmail.com

  12. […] Para quem não leu o artigo anterior: Criando e consumindo Web Service em C-Sharp – Parte 1 […]

Deixe uma resposta