bet-blocker / bet-blocker-api

BetBlockerApi é uma API que fornece uma lista detalhada de hosts de apostas
https://bet-blocker.com
10 stars 2 forks source link

Refatoração - Substituição de Arquivos JSON por Armazenamento no MongoDB #12

Closed RobsonTrasel closed 2 weeks ago

RobsonTrasel commented 2 weeks ago

Pull Request: Refatoração - Substituição de Arquivos JSON por Armazenamento no MongoDB

Descrição

Esta PR implementa uma refatoração significativa na forma como os dados de resoluções de DNS são armazenados e recuperados no sistema. O armazenamento em arquivos JSON foi substituído por uma abordagem moderna utilizando o MongoDB Atlas, uma solução escalável de banco de dados NoSQL. Essa mudança melhora a robustez, escalabilidade e manutenção do sistema.


Motivação

  1. Limitações do JSON:

    • O armazenamento em arquivos JSON apresentava limitações em termos de performance, especialmente para grandes volumes de dados ou acessos concorrentes.
    • Gerenciar arquivos no sistema de arquivos podia levar a inconsistências e problemas em ambientes distribuídos.
  2. Benefícios do MongoDB:

    • O MongoDB oferece uma solução de banco de dados distribuído e escalável, ideal para os casos de uso do sistema.
    • A arquitetura baseada em documentos BSON permite consultas mais flexíveis e maior integração com o modelo de objetos do C#.

Principais Alterações

  1. Substituição do Armazenamento:

    • Arquivos JSON foram eliminados em favor de documentos armazenados em uma coleção do MongoDB (dns_resolutions).
    • Adicionada integração com o MongoDB Atlas para armazenamento remoto.
  2. Alterações na Classe BetBusiness:

    • Dados processados agora são salvos como documentos BSON no MongoDB.
    • Consultas e validações de dados também foram adaptadas para o MongoDB.
  3. Alterações no APIManagerController:

    • Removida lógica baseada em arquivos locais.
    • Consultas de dados agora utilizam o repositório MongoDB para buscar documentos diretamente.
  4. Novo Repositório:

    • Adicionada a classe MongoDbRepository para encapsular a lógica de acesso ao banco de dados MongoDB.
    • Uso de injeção de dependência para tornar o repositório desacoplado e testável.
  5. Configuração de Variáveis de Ambiente:

    • A connection string do MongoDB foi movida para um arquivo .env para melhorar a segurança e facilitar a configuração em diferentes ambientes.

Impactos no Sistema

  1. Escalabilidade:
    • O MongoDB suporta operações concorrentes e grandes volumes de dados, permitindo que o sistema cresça sem gargalos.
  2. Performance:
    • Melhorias significativas em leitura/escrita devido à eliminação de operações de I/O de arquivos.
  3. Manutenção:
    • A separação de responsabilidades e a introdução do repositório MongoDB tornam o sistema mais fácil de manter e estender.

Checklist


Notas Adicionais


Relacionado