Novidades do .NET 8: melhorias na configuração de APIs REST no ASP.NET Core com Generic Attributes

Renato Groffe
2 min readJul 9, 2023

--

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>:

Clique nesta imagem para visualizar com uma melhor resolução

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:

https://github.com/renatogroffe/ASPNETCore8-REST_API-GenericAttributes-Swagger_ConversorTemperaturas/tree/main

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

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

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