Novidades do .NET 7: Route Groups para organização de endpoints em Minimal APIs
Cuidados com a organização do código devem ser encarados como uma preocupação constante no desenvolvimento com Minimal APIs. A falta de um melhor planejamento pode resultar em trechos de código replicados em diversos pontos de um projeto: um bom exemplo disto são configurações repetidas inúmeras vezes para endpoints que em tese pertenceriam a um mesmo agrupamento de funcionalidades.
Levando em conta tais cenários, o .NET 7 traz uma funcionalidade chamada de Route Groups que simplifica a configuração de grupos de endpoints ao optarmos pelo modelo de Minimal APIs.
Já abordei inclusive esta novidade em uma live recente no Canal .NET:
O exemplo apresentado no vídeo envolve o uso de um Filter para validação de uma chave de acesso aos endpoints da aplicação, estando disponível no GitHub:
Caso achem útil a 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!
A implementação deste Filter foi também detalhada em outro artigo aqui no blog:
Novidades do .NET 7: Filters no tratamento de requisições em Minimal APIs
O objetivo é que criemos facilmente um agrupamento para os endpoints da API (rota /contador) cujas definições estão na imagem a seguir:
Na listagem a seguir está a implementação já contemplando o uso de um Route Group:
- Uma chamada ao método MapGroup (linha 48) teve a definição de um endereço-base (/contador) e produzirá uma instância do tipo RouteGroupBuilder (namespace Microsoft.AspNetCore.Routing). Métodos para configuração de endpoints convencionais podem ser acionados a partir deste objeto, gerando economia de código e permitindo aplicar as mesmas configurações a mais de um endpoint (neste exemplo determinei a utilização do Filter AddApiKeyCheckingEndpointFilter);
- A partir instância gerada via MapGroup o método MapGet foi acionado 2 vezes (linhas 50 e 70) para as configurações específicas de 2 endpoints (/contador/incrementar e /contador/decrementar). Esta mesma referência também seria utilizada com chamadas a outras operações como MapPost, MapPut…
E finalizo este post com um convite…
Neste novo evento ONLINE e GRATUITO do Canal .NET serão apresentadas as principais novidades que integram o .NET 7, com exemplos de implementação já utilizando o C# 11 e o ASP.NET Core.
Quando: 06/03/2023 (segunda) a partir das 21:00 - horário de Brasília
Faça sua inscrição em:
https://bit.ly/live-dotnet7-novidades