ASP.NET Web API - Criando e consumindo dados [Parte 1]

C# & Services

Orchard-CMS-and-ASP.NET-Web-APIBom, o ASP.NET Web API é um framwork que permite o desenvolvimento de serviços HTTP. Isso vem da necessidade cada vez mais crescente de arquiteturas orientadas a serviço . Sendo assim, o ASP.NET Web API tem como premissa tornar o desenvolvimento mas simples já encapsulando formatos como o JSON e XML que agora são nativos. Isso facilita e muito na ora de testar, consumir e manter, o tornando a plataforma ideal para o desenvolvimento de aplicativos RESTful no .NET Framework.

A ideia por detraz do ASP.NET Web API é expor via HTTP serviço que serão consumidos e acessados de forma direto por vários dispositivos, como browsers e mobiles.

Sendo assim vamos para a nossa demo com os seguintes passos:

    1. Criando um ASP.NET Web API
    2. Criando um modelo de dados
    3. Criando o repositório 
    4. Consumindo o serviço

 

Criando um ASP.NET Web API

Inicie o Visual Studio 2012, crie um novo projeto e seleciono o template ASP.NET MVC 4 Web Application como na imagem abaixo:

01

 

Logo após selecione o  modelo WEB API e como View engine Razor.

02

Note que ao criar um projeto ASP.NET Web API, diferentemente de um projeto MVC padrão, temos uma nova Controller, que representa os exemplos de uma aplicação Web API.

001

Neste exemplo não iremos utilizar esta Controller. Você pode excluir este arquivo pois iremos criar uma Web API Controller específica vinculada ao nosso Modelo de Dados.

 

Criando um modelo de dados

O próximo passo é adicionar o modelo de dados. Clique com o botão direito na pasta Models e selecione a opção Add New Item e ADO.NET Entity Data Model.

Logo após, configure as propriedades de conexão. Para este exemplo estou utilizando o famoso Northwind (que pode ser encontrado facilmente), como nas imagens 4 e 5 logo abaixo:

04-05

Na próxima tela clique em Next e selecione as tabelas Customers e Employees, caso você esteja usado o mesmo banco de dados do exemplo.

07

 

Criando o Repositório

Neste momento precisamos criar nosso repositório. Para isso vamos criar nossa interface do repositório para os Customers. Vamos criar esta interface com o nome de ICustomersRepository. É nessa interface que vamos definier todas as operações necessárias para a tabela Customers.

Clique com o botão direito sobre a pasta Models, onde já está o nosso modelo de dados, selecione Add, New Item, Interface e nomeie o arquivo como ICustomersRepository.

Insira o seguinte código na em ICustomersRepository.

01

Agora vamos definier nossa ICustomersRepository. Para isso vamos criar uma classe CustomersRepository e implementar todos os métodos definidos em nossa interface. Clique com o botão direito sobre a pasta Models, Add e Class… Nomeie o arquivo como CustomersRepository e clique em OK.

Iclua o seguinte código ao CustomersRepository:

02

Este código não compila, já que estamos herdando de ICustomerRepository mas ainda não implementamos os métodos definidos na interface. Adicione os seguintes trechos de código iniciando pelo GetAllCustomers:

getAll

GetCustomersById:

getAllById

AddCustomer:

add

UpdateCustomer:

update

DeleteCustomer:

delete

Agora com nosso repositório já criado, vamos gerar nosso Controller. Clique com o botão direito sobre a pasta Controllers, Add e Controller… Nomeie como CustomerController utilizando o Template Empty MVC controller:

03

No Controller gerado, realize as seguintes alterações:

    • Inclua uma diretiva using System.Web.Http;
    • Substituir a herança padrão de Controller para ApiController;
    • Crie a instância do repositório.

Sua Controller deve ficar assim:

04

Vamos olhar o código para as operações a serem testadas e depois realizo as considerações necessárias. Vamos começar olhando o GetAllCustomers:

001

GetCustomersById

002

PostCustomer

003

PutCustomer

put

DeleteCustomer

005

Nestes exato momento já temos o nosso ASP.NET Web API criado e com um CRUD implementado para a tabela Customer do banco de dados Northwind.

Bom, para testar nosso serviço, basta apenas rodar nossa aplicação. O que se segue neste caso e a página padrão do template MVC4. Como dito anteriormente, a grande sacada do ASP.NET Web API é disponibilizar o serviço via HTTP. Sendo assim, como estamos rodando localmente, para listar todos os nossos Customers bastaria apenas informar o seguinte endereço: localhost:porta/api/customer. Se optar por realizar uma pesquisa baseada no ID de um Customer o endereço é: localhost:porta/api/customer/?customerID=id.

 

Como isso é possível?

O HTTP possui alguns verbos, dentre os mais conhecidos temos o GET, POST, PUT e DELETE, onde cada um indica uma ação a ser executada. O ASP.NET Web API mapeia todos os verbos criados dentro da Conroller. Então quando ele recepciona uma requisição, a própria engine sabe qual método executar.

Para que isso ocorra é necessário comunicar a engine o que o nosso método faz. Para isso definimos no nome do método o verbo correspondente. GetAllCustomers, DeleteCustomer, PutCustomer. Também é possível decorar o método e utilzar um nome mais significativo.

01

O código fonte deste artigo pode ser baixada CLICANDO AQUI"

 

Conclusão

No próximo post vamos explorar o passo 4 (Consumindo o Serviço), e analizar algumas das nuances e facilidades do uso desta tecnologia. Vou estar utilizando esta mesma estrutura para avaliar algumas particularidades do ASP.NET Web API implementando o mesmo CRUD para a tabela Employee que também mapeamos neste post.

Para os interessados em aprofundar o conhecimento, recomendo como leitua o exelente e-Book escrito pelo Israel Aece que pode ser baixado clicando aqui: http://www.israelaece.com/post/e-Book-Introducao-ao-ASPNET-Web-API.aspx

 

Até mais e bom estudo a todos!

Me Azul

Twitter: @vitormeriat

vitormeriat@gmail.com

vitor.pereira@studentpartner.com


Author's profile picture

Vitor is a computer scientist who is passionate about creating software that will positively change the world we live in.

MVP Azure - Cloud Architect - Data science enthusiast


6 minutes to read