Novidades do .NET 8: melhorias na configuração de APIs REST no ASP.NET Core com Generic Attributes
Uma das novidades introduzidas com o C# 11, Generic Attributes permitem a definição de classes genéricas que serão empregadas como atributos. Esta capacidade foi inclusive abordada em um artigo publicado neste blog:
Novidades do C# 11: Generic Attributes
O Preview 5 do .NET 8 tirou proveito deste novo tipo de implementação, contando agora com as seguintes versões genéricas de atributos:
- [ProducesResponseType<T>]
- [Produces<T>]
- [MiddlewareFilter<T>]
- [ModelBinder<T>]
- [ModelMetadataType<T>]
- [ServiceFilter<T>]
- [TypeFilter<T>]
Na listagem seguinte temos um exemplo de uso do tipo ProducesResponseType, com as classes Temperatura e FalhaCalculo sendo informadas como parâmetros no construtor deste atributo:
A versão a seguir simplifica este código, já utilizando a implementação genérica de ProducesResponseType com os tipos Temperatura e FalhaCalculo na configuração do método GetConversaoFahrenheit:
Nesta imagem temos a interface gerada pelo Swagger/OpenAPI, com as configurações geradas a partir do uso de ProducesResponseType<T>:
Já a imagem seguinte destaca os retornos da API de conversão de temperaturas, obtidos por meio de configurações empregando a versão genérica de ProducesResponseType:
Este código foi disponibilizado 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!
E finalizo este artigo com um convite…
Acompanhe neste novo evento ONLINE e GRATUITO no Canal .NET dicas, truques e alternativas úteis para o desenvolvimento Back-End e de APIs REST com .NET 7, 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 novidades do .NET 8 e C# 12 demonstradas na prática!
Quando: 26/07/2023 (quarta) a partir das 21:00 — horário de Brasília
Faça sua inscrição em:
https://bit.ly/live-backend-dotnet-jul-2023