[[TOC]] ##Extensions criadas para apis do tipo Minimal
Template para projetos do tipo Web-Api usando as premissas de arquitetura do projeto base. Este template foi feito para facilitar o desenvolvimento das apis e futuros microserviços, dando mais velocidade nas entregas, pois abstrai os conceitos básicos da construção da arquitura proposta, deixando o tempo livre para resolução do negócio da melhor forma. Projeto foi criado na versão 6.0 (LTS) do AspnetCore.
- Sempre que um projeto seja criado a partir do template, suas dependências devem ser atualizadas para que os pacotes usados sejam sempre os mais novos.
- O Arquivo DockerFile é sempre gerado com os projetos das camadas defaults da aplicação, caso seja criada alguma camada adicional, deve-se colocar manualmente o caminho no arquivo.
##Versão 1.0.3 A nova versão do template contém as seguintes features:
- Configuração do Serilog para captura de Logs estruturados.
- Configuração do Serilog para envio dos logs gerados para o Application Insights.
- Interface e implementação do serviço de logs estruturados.
- Middleware do Serilog para recuperar o body das requisições recebidas pela api.(SerilogRequestLoggerMiddleware)
- Middleware para tratamento de Exceptions Globais na aplicação.(GlobalExceptionHandlerMiddleware)
- Middleware para tratamento de ProblemDetails nos StatusCode 401 da api.(UnauthorizedTokenMiddleware)
- Contexto de dados para uso do MicroOrm Dapper em conjunto com o pacote Dapper.Contrib
- Projeto de testes de unidade configurados para usar as bibliotecas MOQ,Autofixture.
- Extensão para resolução de dependência da aplicação.(DependencyInjectionExtensions)
- Extensão para autenticação via SSO. (AuthenticationExtensions)
- Extensão para acesso a configurações usando o padrão Options Pattern. (OptionsExtensions)
- Extensão de Healthcheck para monitoramento da aplicação. (HealthcheckExtensions)
- Extensão de Healthcheck para monitoramento de consumo de memória. (GarbageCollectorHealthcheck).
- Extensão de performance para request usando compactadores de requisição (Brotli, Gzip). (PerformanceApiExtensions)
- Extensão de documentação da api usando Swagger(Open API).(SwaggerExtensions)
- Extensão para versionamento de apis por rotas em conjuto com Swagger(Open API).(VersioningExtensions)
- Extensão de observabilidade usando Application Insights.(TelemetryExtensions)
- Opção de Inserção de autenticação na documentação do Swagger. (SwaggerExtensions)
- Implementação do padrão de notificações aplicação Notification Pattern.
- Uso do retorno customizado de erros ProblemDetails para erros da aplicação.
- Extensão para o tratamento de resiliência usando o Pattern Retry. (ResilienceExtensions)
- Adição do filtro para parâmetros não obrigatórios em rotas da api.
- Adição dos arquivos de GlobalUsings em cada camada da aplicação contendo as referências usadas no projeto.
- Adição dos Scoped Namespaces em todos os arquuivos do template.
- Adição do arquivo xunit.runner.json para nomenclatura de testes no gerenciador de testes da IDE.
- Uso do retorno padrão customizado ICommandResult/CommandResult na api.
Os Middlewares são sempre inseridos dentro do arquivo Startup.cs no método Configure. Caso exista a necessidade de criação de um novo Middleware será dentro desse método que devemos inserí-lo. Dentro do ASPNET CORE existem uma ordem de execução dos middlewares, para saber mais sobre consulte a documentação.