O que são Minimal API´s no .NET 6?

Marcio Nizzola
3 min readNov 4, 2021

--

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 !

código inicial do program.cs em Minimal Api´s

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

tela do Nuget Package Manager

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.

--

--

Marcio Nizzola

Microsoft MVP | Software Architect na CI&T | Prof. da Etec Itu | Membro Fundador da Comunidade Itu Developers.