Este projeto implementa uma API em Flask para o gerenciamento de logs, utilizando Redis inicialmente para o armazenamento temporário de dados e, posteriormente, transferindo-os para um banco de dados relacional. O uso do Redis como cache visa otimizar a performance da API, especialmente útil em cenários de alta demanda de escrita de logs. Este projeto é um estudo relacionado ao uso de cache em APIs e gerenciamento eficiente de logs.
- Postar Logs: Permite o envio de mensagens de log com tags associadas.
- Consultar Logs: Oferece a possibilidade de consultar logs específicos por ID, todos os logs, ou logs por tag.
- Contar Logs por Tag: Retorna a quantidade de logs associados a uma tag específica.
- Flask: Framework web usado para construir a API.
- Redis: Utilizado como sistema de armazenamento em cache.
- SQLAlchemy: Utilizando como ORM para interação com o banco de dados
- SQL (Banco de Dados Relacional): Utilizado para armazenamento permanente de logs.
Antes de iniciar, certifique-se de ter instalado:
- Python 3.6+
- Flask
- Redis
- SQLAlchemy
- Um cliente SQL compatível com sua base de dados relacional
- Clone o repositório do projeto:
git clone https://github.com/maxsonferovante/LogsManagement.git
- Instale as dependências:
pip install -r requirements.txt
- Configure o acesso ao Redis e ao banco de dados relacional no arquivo de configuração da aplicação.
Execute o seguinte comando para iniciar o servidor Flask:
flask run
- Descrição: Registra um novo log.
- Parâmetros:
name
(query) - Nome da aplicação que envia o log. - Payload:
{ "log": "Mensagem do log", "tag": "DEBUG" }
- Exemplo de Uso:
curl -X POST http://127.0.0.1:8000/logs?name=app -H "Content-Type: application/json" -d '{"log": "This is a log message", "tag": "DEBUG"}'
- Descrição: Busca um log por seu ID.
- Exemplo de Uso:
curl http://127.0.0.1:8000/logs/2624 -H "Accept: application/json"
- Descrição: Retorna todos os logs armazenados.
- Exemplo de Uso:
curl http://127.0.0.1:8000/logs/all -H "Accept: application/json"
- Descrição: Lista todas as tags disponíveis.
- Exemplo de Uso:
curl http://127.0.0.1:8000/logs/tags/available -H "Accept: application/json"
- Descrição: Conta quantos logs existem com uma determinada tag.
- Exemplo de Uso:
curl http://127.0.0.1:8000/logs/tag/DEBUG/count -H "Accept: application/json"
Contribuições são bem-vindas. Por favor, envie pull requests para melhorar a funcionalidade, corrigir bugs ou sugerir melhorias.