Skip to content

mmarlonms/monte-olimpo-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Logo

MonteOlimpo

Suite de serviços para desenvolvimentos de API's baseados em uma arquitetura hexagonal.

O intuito desse projeto é facilitar na criação de apis fornecendo uma configuração padrão.

Monte Olimpo Base fornece uma suite de pacotes voltadas para questões de infra estrtura e serviços básicos como Ioc de logs, tratamento de exceções e swagger por exempo.

  • MonteOlimpo.Base.Extensions

    • Apresenta Serviços extensão para as aplicações .net core, como por exemplo RegisterAllTypes que realiza o IoC por assembly.
  • MonteOlimpo.Base.Swagger

    • Apresenta o método de extensão AddMonteOlimpoSwagger que realiza a configuração do Swagger em uma aplicação .net core.
  • MonteOlimpo.Base.Log

    • Apresenta o método de extensão AddMonteOlimpoLogging que realiza a configuração do Serillog em uma aplicação .net core com base em um arquivo serilogsettings.json ( Obs.: A aplicação deve reconhecer o arquivo com serilogsettings.json como arquivo de configuração, o pacote MonteOlimpo.Base.Extensions possui implementação para isso ).

    Para configurar o log corretamente o aquivo serilogsettings.json deve possir a seguinte configuração:

    "LogConfiguration": {
      "EnableLog": true,
      "EnableLogConsole": true,
      "EnableLogElasticSearch": true
    }
    

    Caso tenha habilitado o LogElasticSearch é necessário configurar as informações do elastic seach, informando dados como o indice que será utilizado e local do host, neste exemplo foi utilizado a configuração do Monte Olimpo Auth Server

    "ElasticConfiguration": {
        "UseAuthentication": false,
         "UrlHost": "http://localhost:9200",
         "IndexName": "monteolimpo-auth-server"
    }
    
  • MonteOlimpo.Base.CoreException

    • Apresenta as classes Base para tratamento de erros de negócio e validação de Models.
    • Referências Externas:
  • MonteOlimpo.Base.ExceptionHandler.Abstractions

    • Apresenta Interface para o Handle de Exceções.
  • MonteOlimpo.Base.ExceptionHandler

  • Implementação do Handle de Exceções para APIs .net core, no qual identifica o tipo de exceção, serializa e retorna. Caso seja um erro 400 retorna serializa o objeto e exibe na tela uma mensagem customizada. Caso seja um erro 500 cria um Guid, loga o erro com toda a stack e retorna somente o guid, evitando o envio da stack trace para quem realiza as chamadas. Com isso garantimos maior segurança.

  • MonteOlimpo.Base.Filters

  • MonteOlimpo.Base.ValidationHandler.Abstractions

    • Apresenta Interface para o Handle de Validations.
  • MonteOlimpo.Base.ValidationHandler

  • MonteOlimpo.Base.ApiBoot

Exemplo (monte-olimpo)

using MonteOlimpo.Service;
using System.Collections.Generic;
using System.Reflection;

namespace MonteOlimpo.WebApi
{
    public class Startup : MonteOlimpoBootStrap
    {
        public Startup(IConfiguration configuration)
            : base(configuration)
        {
        }

        public override void ConfigureServices(IServiceCollection services)
        {
            base.ConfigureServices(services);
        }

        protected override IEnumerable<Assembly> GetAditionalAssemblies()
        {
            yield return typeof(GodRepository).Assembly;
            yield return typeof(GodService).Assembly;
        }
    }
}

Dessa forma temos uma startup enxuta tendo maior tempo desenvolvimento das regras de negócio da aplicação.

Nuget details

Packages Version & Downloads
MonteOlimpo.Base.CoreException NuGet Version and Downloads count
MonteOlimpo.Base.ExceptionHandler.Abstractions NuGet Version and Downloads count
MonteOlimpo.Base.Filters NuGet Version and Downloads count
MonteOlimpo.Base.Log NuGet Version and Downloads count
MonteOlimpo.Base.ExceptionHandler NuGet Version and Downloads count
MonteOlimpo.Base.Extensions NuGet Version and Downloads count
MonteOlimpo.Base.Swagger NuGet Version and Downloads count
MonteOlimpo.Base.ValidationHandler.Abstractions NuGet Version and Downloads count
MonteOlimpo.Base.ValidationHandler NuGet Version and Downloads count
MonteOlimpo.Base.ApiBoot NuGet Version and Downloads count

SonarCloud

SonarCloud SonarCloud SonarCloud SonarCloud SonarCloud

About

Suite de serviços para desenvolvimentos de API's

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages