quarta-feira, 28 de fevereiro de 2018

ASP.NET Core Web API - Utilizando Injeção de Dependência


A proposta desse tutorial é apresentar, de forma prática, como criar uma aplicação .Net Core Web API, utilizando injeção de dependência.

Antes de começarmos o projeto, vamos pontuar algumas facilidades da estrutura Web API:


  • Framework de serviços HTTP de implementação fácil e prática;
  • Utiliza a arquitetura REST (sigla em inglês para: Representational State Transfer), onde as solicitações HTTP utilizam o mesmo endereço de URL;
  • As requisições utilizadas para esse serviço são chamadas de método HTTP ou verbo, sendo: GET, POST, PUT, DELETE, TRACE, OPTIONS, PATCH, CONNECT, HEAD.
    Os mais utilizados são: 
    GET, POST, PUT, DELETE (o Visual Studio já implementa essas chamadas através do projeto: Aplicativo Web ASP.NET Core - Web API);
  • Aplicações mobile, web e serviços podem consumir as chamadas de Web API;
  • As respostas  das chamadas são no formato MediaTypeFormatter e os mais utilizados são: JSON e XML.

Vamos para a parte prática: abra o Visual Studio 2017 e escolha o Aplicativo Web ASP.NET Core:


Na próxima tela, escolha o aplicativo API Web:



O projeto foi criado e notamos que na pasta Controller  a classe ValuesController.cs, já implementa os quatro métodos HTTP mais utilizados.

O próximo passo é a implementação da classe Usuário. Para isso, crie uma pasta chamada Models e depois crie a classe Usuario.cs , conforme modelo abaixo:



Vamos criar o Repositório. Crie uma pasta com esse nome, após isso crie a interface IUserRepositorio.cs  e implemente o seguinte código:

Em seguida, vamos criar a classe UserRepositorio.cs e implemente o código abaixo:






Feito isso, vamos implementar esses métodos na classe ValuesController.cs, seguindo os passos abaixo:




Antes de prosseguirmos, note que antes das chamadas HTTP, foi implementado a referência para o uso da interface IUserRepositorio:

Se você tentar executar essa aplicação, gerará um erro, pois precisamos referenciar essa injeção de dependência na classe Startup.cs - no método ConfigureServices, conforme código abaixo:



Temos dois pontos importantes nessa implementação:

  1. A referência para a injeção de dependência foi feita no método ConfigureServices, que é responsável pelos serviços utilizados pela aplicação;
  2. O serviço utilizado para referenciar a interface foi o AddSingleton().
    Vale ressaltar que existem três tipos de serviços:

    - AddScoped():    Compartilhado em uma única solicitação, ou escopo de serviço.
    - AddTransient(): Criado em cada solicitação para o serviço.
    - AddSingleton(): Uma única instância compartilhada ao longo da vida útil do
                              aplicativo.
Pronto, agora é só executar a aplicação e, como exemplo, teremos o retorno para a chamada GET():


O projeto está disponível no meu GitHub


Nenhum comentário:

Postar um comentário