@marcos_feitoza/personal-finance-backend-shared
v1.4.0
Published
Este projeto contém código e utilitários compartilhados usados por todos os microsserviços do backend de finanças pessoais.
Readme
Biblioteca Compartilhada - Personal Finance Backend
Este projeto contém código e utilitários compartilhados usados por todos os microsserviços do backend de finanças pessoais.
Propósito
O objetivo desta biblioteca é centralizar a lógica de negócios, as definições de dados principais e as funcionalidades comuns para evitar a duplicação de código e garantir a consistência, manutenibilidade e observabilidade entre os serviços.
Conteúdo Principal
database.py: Gerenciamento de sessão e configuração de conexão com o banco de dados PostgreSQL.models.py: Definições das tabelas do banco de dados usando SQLAlchemy ORM.schemas.py: Modelos de dados Pydantic para validação de dados em requisições e respostas de API.crud.py: Funções comuns para operações de Create, Read, Update, Delete (CRUD) e lógica de cálculo de portfólio.auth_utils.py: Utilitários para hashing de senhas e manipulação de JWT (JSON Web Tokens).dependencies.py: Dependências do FastAPI para autenticação de usuário (extração decurrent_useretoken).logging_utils.py: Configuração centralizada para logging estruturado (JSON) com suporte aCorrelation ID.
Como Usar (Instalação como Dependência)
Este projeto não é um serviço executável por si só. Ele é projetado para ser instalado como uma dependência local por outros serviços do backend (ex: personal-finance-backend-core, personal-finance-backend-market-data).
Para incluir esta biblioteca como uma dependência editável em outro serviço (por exemplo, no requirements.txt do personal-finance-backend-core), adicione a seguinte linha no requirements.txt do serviço consumidor:
-e ./personal-finance-backend-sharedImportante: Se o serviço consumidor for construído via dockerbuild.sh (como market-data), que copia a biblioteca compartilhada para um diretório local temporário, o requirements.txt do serviço consumidor deverá ter a linha:
-e ./shared-libraryNesses casos, certifique-se de que o dockerbuild.sh do serviço está copiando a biblioteca corretamente para o contexto de build do Docker.
Logging
Esta biblioteca contém a implementação centralizada do sistema de logging estruturado (JSON).
logging_utils.py: Este módulo fornece a funçãosetup_logging()e oREQUEST_ID_CTX(paraCorrelation ID).- Como Funciona: Todos os microsserviços do backend que utilizam esta biblioteca podem chamar
setup_logging()em seumain.pypara configurar seus loggers para emitir logs em JSON com oCorrelation IDautomaticamente incluído, permitindo rastreabilidade ponta a ponta. - Exemplo de Uso:
# No main.py de um serviço from personal_finance_shared.logging_utils import setup_logging setup_logging()
