ASP.NET
Core - Organizando Minimal APIs
![]() |
Neste artigo veremos algumas formas de organizar as minimal APIs. |
Com as Minimal APIs, você pode criar uma API usando um único arquivo de código ou um número mínimo de arquivos. Em vez de configurar rotas em um arquivo separado, como é comum em estruturas tradicionais, você pode definir rotas diretamente no código, tornando o processo mais direto.
Aqui está um exemplo básico de uma Minimal API na plataforma .NET:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpoints(endpoints =>
{
endpoints.MapGet("/", () => "Hello, World!");
});
var app = builder.Build();
app.Run();
|
Vou apresentar a seguir duas formas de como organizar o código das minimal APIs :
1- Usando Método Local
Uma forma fácil de organizar APIs mínimas é usar um método local e neste método definir os endpoints. Para usar basta invocar o método a partir da classe Program.
Exemplo:
Crie um método local que não retorna nada na classe Program e inclua nele os seus endpoints:
|
... var app = builder.Build(); CreateDatabase(app); app.UseSwagger(); ProductsEndpoints(app); app.Run(); void ProductsEndpoints(WebApplication app){ app.MapGet("/products", (AppDbContext db) => { return Results.Ok(db.Products.ToList()); }); app.MapGet( "/products/{id}", (AppDbContext db, int id) =>{ var product = db.Products.FirstOrDefault(p => p.Id == id); return Results.Ok(product); }); } |
2- Usando Método de extensão
Uma forma mais usada é criar métodos como métodos de extensão da classe WebApplication
Exemplo:
Crie uma classe estática e nesta classe defina o método de extensão para WebApplication:
using MinApiOrganiza.Context;
namespace MinApiOrganiza.Endpoints;
public static class ExtensionEndpoints
{
public static void ProductsEndpointsExtensions(this WebApplication app)
{
app.MapGet("/products", (AppDbContext db) =>
{
return Results.Ok(db.Products.ToList());
});
app.MapGet("/products/{id}", (AppDbContext db, int id) =>
{
var product = db.Products.FirstOrDefault(p => p.Id == id);
return Results.Ok(product);
});
}
} |
2- Usando o Carter
O Carter é um framework que é uma camada fina de métodos de extensão e funcionalidades sobre a ASP.NET Core, permitindo que o código seja mais explícito, o roteamento mais elegante e além disso adiciona o suporte a Fluent Validation.
Para ver um exemplo completo usando o Carter acompanhe meu artigo neste link : ASP .NET Core - Criando APIs com o framework Carter
Pegue o código do projeto aqui: MinApiOrganiza.zip
"Jesus lhes respondeu, e disse: A minha doutrina
não é minha, mas daquele que me enviou.
Se alguém quiser fazer a vontade
dele, pela mesma doutrina conhecerá se ela é de Deus, ou se eu falo de mim
mesmo."
João 7:16,17
Referências:
C# - Tasks x Threads. Qual a diferença
DateTime - Macoratti.net
Null o que é isso ? - Macoratti.net
Formatação de data e hora para uma cultura ...
C# - Calculando a diferença entre duas datas
NET - Padrão de Projeto - Null Object Pattern
C# - Fundamentos : Definindo DateTime como Null ...
C# - Os tipos Nullable (Tipos Anuláveis)