O que são Minimal API´s no .NET 6?
O .NET 6 vem aí, e com ele uma nova feature que acredito que ganhará muitos adeptos em breve, dada a agilidade e forma descomplicada que trará para a criação de API´S.
A Microsoft incorporou uma nova forma de implementarmos as chamadas HTTP dentro de uma aplicação .NET, usando o conceito “Top Level Program” onde já eliminava do program.cs vários detalhes da sua implementação tornando o código muito mais simples.
E agora, o conceito de Minimal API, que simplificam em muito a criação de API´S e a forma como as configuramos, acredito que essa feature, irá cair nas graças dos desenvolvedores rapidamente e acabará tornando-se um padrão para API´s que não tenham necessidade de implementações mais robustas.
Então para exemplificar esta nova forma, vamos partir do princípio, já na criação do nosso projeto, temos que utilizar um novo template, que é o template ASP.NET Core Empty para isto podemos fazê-lo de duas formas distintas, via linha de comando ou pelo Visual Studio.
dotnet new web -n ExemploMinimalAPI
Então assim que criado o projeto, você verá que seu Program.cs tem só isso de código !
E neste exemplo, já há um endpoint mapeado no método “Get” para a raíz da sua aplicação.
Vamos então montar os verbos básicos e ver como ficam ?
Pronto, nossos endpoints estão configurados !
Ah, mas e o Swagger ? E a injeção de dependência ? Dá pra usar tudo isso ainda ? A resposta é “SIM” !
Adicionando o Swagger
Para adicioná-lo teremos que fazê-lo via linha de comando ou diretamente pelo Nuget Package Manager
dotnet add package Swashbuckle.AspNetCore
ou
Feito isso, ainda precisamos fazer o setup via código da sua inicialização, para isto :
Ao executar já podemos ver as nossas chamadas documentadas via navegador e podemos testá-las !
Configurando Injeção de Dependência
Essa parte é muito fácil, então vamos criar uma Interface e um Repositório para podermos testar o conceito ! Primeiro a nossa Interface :
Agora um repositório:
Pronto, agora é só fazer a configuração no Program.cs:
No código acima, o item 1 é a configuração da injeção de dependência, depois no item 2 é feita a declaração do objeto que será injetado no nosso método e no item 3 o seu consumo propriamente dito !
E assim, temos o método funcionando direitinho !!! Fácil ? Demais ! Abaixo o exemplo do seu teste no Swagger !
Pronto, na próxima postagem, vou modificar este exemplo para que possamos utilizar o Entity Framework.