https://github.com/maxsonferovante/logsmanagement
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.
https://github.com/maxsonferovante/logsmanagement
cache flask python redis rest-api sqlalchemy
Last synced: 3 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/maxsonferovante/logsmanagement
- Owner: maxsonferovante
- Created: 2024-04-08T11:38:51.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-04T22:20:26.000Z (about 1 year ago)
- Last Synced: 2025-01-30T09:17:05.439Z (5 months ago)
- Topics: cache, flask, python, redis, rest-api, sqlalchemy
- Language: Python
- Homepage:
- Size: 17.6 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Logs Management API
## Descrição
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.## Funcionalidades
- **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.## Tecnologias Utilizadas
- **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.## Como Usar
### Pré-Requisitos
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### Configuração
1. Clone o repositório do projeto:
```bash
git clone https://github.com/maxsonferovante/LogsManagement.git
```
2. Instale as dependências:
```bash
pip install -r requirements.txt
```
3. Configure o acesso ao Redis e ao banco de dados relacional no arquivo de configuração da aplicação.### Inicializando a API
Execute o seguinte comando para iniciar o servidor Flask:
```bash
flask run
```### Endpoints Disponíveis
#### POST /logs
- **Descrição**: Registra um novo log.
- **Parâmetros**: `name` (query) - Nome da aplicação que envia o log.
- **Payload**:
```json
{
"log": "Mensagem do log",
"tag": "DEBUG"
}
```
- **Exemplo de Uso**:
```bash
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"}'
```#### GET /logs/{id}
- **Descrição**: Busca um log por seu ID.
- **Exemplo de Uso**:
```bash
curl http://127.0.0.1:8000/logs/2624 -H "Accept: application/json"
```#### GET /logs/all
- **Descrição**: Retorna todos os logs armazenados.
- **Exemplo de Uso**:
```bash
curl http://127.0.0.1:8000/logs/all -H "Accept: application/json"
```#### GET /logs/tags/available
- **Descrição**: Lista todas as tags disponíveis.
- **Exemplo de Uso**:
```bash
curl http://127.0.0.1:8000/logs/tags/available -H "Accept: application/json"
```#### GET /logs/tag/{tag}/count
- **Descrição**: Conta quantos logs existem com uma determinada tag.
- **Exemplo de Uso**:
```bash
curl http://127.0.0.1:8000/logs/tag/DEBUG/count -H "Accept: application/json"
```## Contribuições
Contribuições são bem-vindas. Por favor, envie pull requests para melhorar a funcionalidade, corrigir bugs ou sugerir melhorias.