Novidades do .NET 7: melhorias simplificando respostas em Minimal APIs no ASP.NET Core
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: