Novidades do .NET 9: melhoria simplificando respostas com falhas em Minimal APIs no ASP.NET Core
O .NET 9 traz melhorias envolvendo TypedResults, com novas opções de métodos que permitem retornar um erro do tipo 500 (Internal Server Error).

O .NET 9 traz melhorias envolvendo TypedResults, com novas opções de métodos que permitem retornar um erro do tipo 500 (Internal Server Error). Já abordei inclusive esta capacidade em um vídeo recente no Canal .NET (clique aqui para acessar este conteúdo no YouTube).
.NET 9
Na próxima listagem podemos observar o uso do método InternalServerError com TypedResults (com o retorno de uma string com a descrição do erro), simulando assim uma falha para efeitos de testes:
using APIContagem;
using APIContagem.Models;
using Microsoft.AspNetCore.Http.HttpResults;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<Contador>();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
app.UseSwagger();
app.UseSwaggerUI();
app.UseHttpsRedirection();
app.MapGet("/contador",
Results<Ok<ResultadoContador>, InternalServerError<string>> (Contador contador) =>
{
int valorAtualContador;
lock (contador)
{
contador.Incrementar();
valorAtualContador = contador.ValorAtual;
}
app.Logger.LogInformation($"Contador - Valor atual: {valorAtualContador}");
if (Convert.ToBoolean(Convert.ToBoolean(app.Configuration["SimularFalha"])) &&
valorAtualContador % 2 == 0)
{
app.Logger.LogError(
"Simulando uma falha para testar TypedResults.InternalServerError...");
return TypedResults.InternalServerError("Simulação de falha");
}
return TypedResults.Ok(new ResultadoContador()
{
ValorAtual = contador.ValorAtual,
Local = contador.Local,
Kernel = contador.Kernel,
Framework = contador.Framework,
Mensagem = app.Configuration["Saudacao"]
});
}).Produces<ResultadoContador>().Produces(StatusCodes.Status500InternalServerError).WithOpenApi();
app.Run();
Vale destacar que o método InternalServerError também conta com uma versão genérica, possibilitando que se retorne um payload JSON em uma resposta co
Vale destacar que o método InternalServerError também conta com uma versão genérica, possibilitando que se retorne um payload JSON em uma resposta com status code 500.
Ao acionar o método InternalServerError de TypedResults (no exemplo a seguir durante o debugging da aplicação de testes):
Uma reposta com status code 500 será produzida, incluindo em seu conteúdo a mensagem de erro mencionada anteriormente:
Na próxima imagem temos os logs produzidos durante os testes:
Esta aplicação foi disponibilizada no GitHub:
Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!
Referências
.NET 9 – Guia de Referência: artigos, dicas, vídeos e exemplos de utilização
LEIA TAMBÉM
- Novidades do .NET 9: melhorias na serialização JSON com IndentCharacter e IndentSize
- Novidades do .NET 9: melhorias em criptografia com CryptographicOperations.HashData()
- Novidades do .NET 8: Short-circuit middleware em Minimal APIs










