Novidades do .NET 7: melhorias simplificando respostas em Minimal APIs no ASP.NET Core

Renato Groffe
2 min readMay 30, 2022

--

Em um post anterior sobre novidades do Preview 4 do .NET 7 abordei algumas melhorias envolvendo Minimal APIs, mais precisamente no que se refere ao suporte a Swagger/OpenAPI em aplicações deste tipo:

Novidades do .NET 7: melhorias no suporte a Swagger/OpenAPI em Minimal APIs no ASP.NET Core

Neste novo artigo dou continuidade a este esforço, demonstrando agora como empregar os novos tipos TypedResults (namespace Microsoft.AspNetCore.Http) e Results<TResult1, TResult2> (namespace Microsoft.AspNetCore.Http.HttpResults). Além de simplificar a codificação de repostas produzidas em um endpoint, o uso dessas estruturas também refletirá no resultado da documentação gerada por uma API REST ao se ativar o uso do Swagger/OpenAPI.

Considerando a utilização de métodos como Results.BadRequest (linha 42), Results.Ok (linha 48) e Produces (linhas 49 e 50) no exemplo a seguir, que corresponde a um projeto implementado com .NET 6:

Na próxima listagem temos uma versão refatorada deste exemplo já em .NET 7:

  • Foi definido como retorno deste endpoint o tipo Results<Ok<Temperatura>, BadRequest> (linha 38);
  • Os métodos TypedResults.BadRequest (linha 43) e TypedResults.Ok (linha 49) indicam os status/valores possíveis para tal operação;
  • Essas alterações possibilitam uma tipagem mais clara para o endpoint em questão, servindo inclusive como indicares dos retornos esperados na especificação gerada com o Swagger/OpenAPI.

O código demonstrando estas novidades foi disponibilizado no GitHub:

https://github.com/renatogroffe/ASPNETCore7-Preview4-MinimalAPIs-TypedResults_ConversaoTemperaturas

A imagem a seguir traz destacados os retornos possíveis para a operação de conversão de temperaturas (de Fahrenheit para as escalas Celsius e Kelvin):

E finalizo este artigo com um convite…

Segunda 27/06 às 21:00 horário de Brasília — teremos mais um evento online e gratuito no canal Canal .NET.

Esta live trará novas dicas, truques e alternativas úteis para o desenvolvimento Back-End e de APIs REST com .NET 6, C#, ASP.NET Core e Azure Functions. Ao longo da apresentação será coberto o uso de diferentes frameworks, serviços na nuvem, mensageria e boas práticas de forma a facilitar e tornar mais dinâmica a implementação de soluções baseadas na plataforma .NET no seu dia a dia.

Teremos também algumas novidades do .NET 7 em exemplos práticos!

Para participar faça sua inscrição no link a seguir, a transmissão acontecerá via YouTube:

https://bit.ly/live-backend-dotnet-2022-pt2

--

--

Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker