Neste artigo, vou mostrar como criar e consumir uma Web API ASP .NET em uma aplicação Xamarin Forms usando o HttpCliente com o Visual Studio 2015 e a linguagem C#.
Esse é um artigo essencialmente prático que mostra como criar, hospedar e consumir uma Web API ASP .NET em uma aplicação Xamarin Forms usando o HttpClient.
Para poder acompanhar o artigo, você tem que ter noções de Web API, REST, HttpClient, Xamarin Forms. Eu não vou entrar em detalhes desses pré-requisitos, mas vou deixar o link onde você vai poder acessar e se inteirar sobre o conteúdo exigido. Seguem abaixo os links:
- ASP.NET MVC 4 – Usando Web API
- ASP .NET Web API – Consumindo uma Web API em uma Web API
- ASP .NET Web API – Consumindo uma Web API em um projeto Windows Forms – Parte 02
- ASP .NET – Apresentando Web API
Dessa forma, se você tem dúvidas sobre os requisitos mencionados, sugiro que leia os artigos acima.
Vamos dividir as tarefas que vamos realizar em três tópicos:
- Criar uma Web API ASP .NET
- Fazer o deploy do projeto
- Criar uma aplicação Xamarin Forms para consumir a Web API
1. Criando um Web API ASP .NET
A criação da WEB API ASP .NET pode ser vista neste artigo: ASP .NET Web API – Consumindo uma Web API em um Web API (C#) – Parte 01.
Basta ler somente a primeira parte onde criamos a Web API. Note que estamos criando um projeto separado usando o template Web API/MVC.
Esta Web API é quem vai expor os serviços para atualizar as informações dos Produtos que estão sendo representados pela classe Produto:
Produto.cs
public class Produto { public int Id { get; set; } public string Nome { get; set; } public string Categoria { get; set; } public decimal Preco { get; set; } }
Para tornar o exemplo mais simples, não estou usando um banco de dados, mas estou definindo os dados em um repositório, na classeProdutoRepositorio, conforme mostrado no trecho de código a seguir:
ProdutoRepositorio.cs
..... private List<Produto> produtos = new List<Produto>(); private int _nextId = 1; public ProdutoRepositorio() { Add(new Produto { Nome = "Guaraná Antartica", Categoria = "Refrigerantes", Preco = 4.59M }); Add(new Produto { Nome = "Suco de Laranja Prats", Categoria = "Sucos", Preco = 5.75M }); Add(new Produto { Nome = "Mostarda Hammer", Categoria = "Condimentos", Preco = 3.90M }); Add(new Produto { Nome = "Molho de Tomate Cepera", Categoria = "Condimentos", Preco = 2.99M }); Add(new Produto { Nome = "Suco de Uva Aurora", Categoria = "Sucos", Preco = 6.50M }); Add(new Produto { Nome = "Pepsi-Cola", Categoria = "Refrigerantes", Preco = 4.25M }); } ....
Dessa forma, teremos uma lista de produtos em memória que poderemos consumir selecionando, alterando, incluindo e excluindo informações de produtos via Xamarin Forms.
2. Fazer o deploy do projeto
Com a Web API pronta, temos que publicar o projeto em um servidor de hospedagem para que possamos fazer o acesso remoto usando o HttpClient e, assim, consumir a web API.
Neste momento, você pode publicar a web API em qualquer servidor com suporte de hospedagem ASP .NET ou publicar na nuvem usando um serviço Azure, Amazon etc…
Neste artigo, eu vou usar o servidor de hospedagem gratuita Somee.com.
A primeira coisa a fazer é acessar o site Somee.com e criar uma nova conta free. Para isso, acesse o site e clique em Free .Net Hosting:
A seguir, clique no botão Order now para Free Hosting package:
Na próxima janela, clique em: Checkout
Preencha o formulário para registrar sua conta, fornecendo os seus dados e clique no botão Register new Account.
Você vai receber um número para confirmar o seu registro no seu e-mail e deve informar esse número para concluir o processo de criação da conta.
Após concluir essa etapa com sucesso, você terá acesso ao seu painel de controle que será usado para fazer o deploy da web API:
A seguir, clique na guia WebSites e informe o nome do domínio que será usado para acessar o seu website, o sistema operacional e a versão da ASP .NET que você vai usar.
Para o exemplo, eu criei o subdominio: macwebapi.somee.com.
Informe o título e a descrição e clique no botão – Create website. Pronto! Seu site está pronto para receber o deploy do projeto Web API.
Vamos fazer o deploy do projeto web API para o site criado.
Antes, vamos até a pasta onde criamos o projeto web PI e vamos gerar um arquivo ZIP da pasta onde criamos a nossa solução.
No exemplo, a web api foi criada na pasta WebApi2_Produtos e, assim, geramos o arquivo WebApi2_Produtos.zip contendo todos os arquivos da solução criada.
Este arquivo será enviado para o deploy no site.
Clique na opção File Manager para abrir a janela onde podemos enviar e gerenciar os arquivos.
A seguir, clique em Selecionar arquivo e selecione o arquivo WebApi2_Produtos.zip e clique no link – Upload and Unzip archives:
Ao final do processo, o arquivo será enviado para o servidor e descompactado. Neste momento, você deverá mover os arquivos da pasta WeApi2_Produtos para a raiz do site de forma a obter o seguinte resultado no gerenciador de arquivos:
Nota: O procedimento feito nessa etapa pode variar, e vai depender de como você estruturou sua aplicação ASP .NET.
Agora, basta digitar no navegador: macwebapi.somee.com/api/produtos para obter o retorno no formato JSON da nossa lista de produtos:
E assim estamos prontos para consumir a nossa web API que agora está atendendo no servidor remoto.
Na próxima parte do artigo, iremos criar a aplicação Xamarin Forms que vai consumir os serviços dessa Web API via HttpClient.
Pegue o projeto da web API aqui: WebApi2_Produtos.zip