Biblioteca leve para clientes REST e Redis, focada em casos de uso com APIs Eve (RESTful) e Redis/Sentinel.
- Wrapper Redis que garante conexão com um nó master e operações comuns:
rest_clients.redis_client.RedisClient. - Cliente HTTP genérico com retry e helpers para métodos HTTP:
rest_clients._generic_rest.RestClient. - Extensão específica para APIs Eve com lógica de autenticação, retry e operações CRUD:
rest_clients.eve_rest.EveApiRest. - Construtor simples do cliente Eve que valida a configuração:
rest_clients.eve_client.EveClient. - Exceções personalizadas para controle de erro:
rest_clients.exceptions.ApiRestExceptionerest_clients.exceptions.MissingConfigurationException.
- Código principal:
- Metadata e package:
- Testes:
- Licença:
Instale dependências (ex.: requests, redis) e importe os módulos do pacote.
- Redis (standalone)
from rest_clients.redis_client import RedisClient
cfg = {"host": "localhost", "port": 6379}
rc = RedisClient(cfg)
rc.set_value("k", "v", ex=60)
val = rc.get_value("k")- Redis com Sentinel
cfg = {"cluster": ["host1:26379", "host2:26379"]}
rc = RedisClient(cfg)- REST genérico
from rest_clients._generic_rest import RestClient
client = RestClient("https://api.example.com")
resp = client._get("https://api.example.com/resource")- Cliente Eve com autenticação
from rest_clients.eve_client import EveClient
# auth_handler deve expor get_token() e update_token()
eve = EveClient("https://eve.example.com", auth_handler=my_auth_handler)
resp = eve.get("resource_id")MissingConfigurationExceptioné lançada quando parâmetros obrigatórios (ex.: URL ou auth) não são fornecidos.ApiRestExceptioné usada para erros de operação nas chamadas REST.
Execute os testes com pytest:
pytest -qProjeto licenciado sob a MIT License.