ASP.NET Core - Consumindo uma Minimal API - I
Hoje veremos um exemplo básico de como consumir uma minimal API em uma aplicação ASP .NET Core MVC. |
Neste tutorial iremos criar uma aplicação ASP .NET Core Web API usando a abordagem das minimal APIs que vai expor um serviço com frases de pensamentos que estarão registrados em um repositório.
A seguir vamos criar uma aplicação ASP .NET Core MVC que vai acessar e consumir a Minimal API e vai exibir o pensamento na página web.
Tudo bem simples.
Criando a solução
Vamos criar uma solução em branco usando o template Blank Solution com o nome DicasApp
Criando a Minimal API
A seguir vamos incluir um projeto Web API nesta solução usando o template ASP.NET Core Web API com o nome DicasApp.Api
A seguir vamos definir as configurações conforme mostra a figura:
Observe não marcarmos a opção para usar Controllers e assim vamos criar uma minimal API.
Neste projeto vamos criar uma pasta Models e nesta pasta criar a classe Pensamento :
public class Pensamento { public string? Nome { get; set; } public string? Texto { get; set; } public string? Categoria { get; set; } } |
Esta classe representa o nosso domínio.
Vamos agora criar na classe Program um Repositório onde vamos criar uma lista de pensamentos e a seguir criar um endpoint para obter de forma aleatória um pensamento deste repositório.
using DicasApp.Api.Models; var builder = WebApplication.CreateBuilder(args); // Add services to the container. var app = builder.Build(); // Configure the HTTP request pipeline. app.UseHttpsRedirection(); app.MapGet("/dicas", () => app.Run(); List<Pensamento> Repository() return listaPensamentos; |
Aqui temos o código do Repository que cria uma lista de objetos do tipo Pensamento que expressa o pensamento do dia que iremos exibir no web site.
Poderíamos ter implementando o acesso a uma base de dados onde essas informações estariam armazenadas mas isso é um detalhe que você pode expandir.
O código do endpoint GET /pensamentos é bem simples:
app.MapGet("/pensamentos", () =>
{
Random rand = new Random();
int toSkip = rand.Next(0, 10);
Pensamento pensamento = Repository().Skip(toSkip).Take(1).FirstOrDefault();
return pensamento;
})
.WithName("GetDicas");
Nele estamos obtendo a partir do repositório de forma aleatória um item da lista e retornando para o consumidor do recurso.
Este código define um endpoint GET que pode ser acessado através da rota "/pensamentos". Quando um cliente faz uma solicitação GET para essa rota, o aplicativo executará a função de retorno de chamada definida, que é um lambda que:
Executando este projeto teremos o seguinte:
Acionando endpoint teremos o resultado esperado:
E nossa API esta pronta para ser consumida.
Na próxima parte deste artigo iremos criar a aplicação MVC para consumir esta API.
"O Senhor
estabeleceu o seu trono nos céus, e como rei domina sobre tudo o que
existe."
Salmos 103:19
Referências:
ASP .NET - Gerando QRCode com a API do Google
C# 9.0 - Instruções de nível superior
ASP.NET Core Web API - Apresentando API Analyzers
ASP.NET Core - Usando o token JWT com o Swagger
Gerando a documentação da Web API com Swagger