.NET

7 ago, 2017

Xamarin Forms – Consumindo uma Web API ASP .NET com HttpClient

Publicidade

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:

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:

  1. Criar uma Web API ASP .NET
  2. Fazer o deploy do projeto
  3. 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