Microservice HTTP Client
BaseClient is a reusable, extensible base class for creating HTTP clients in a microservices architecture. It simplifies making requests to internal services and includes built-in retry logic, error handling, and token-based authentication.
- Retry with exponential backoff and jitter
- Easy Bearer token injection
- Centralized error handling (
ServiceError) - Custom retry hook for logging/monitoring
- Designed for subclassing per microservice
from microclient.cline.base import BaseClient
class InventoryClient(BaseClient):
def get_stock(self, product_id):
return self._request("GET", f"/inventory/{product_id}")
class OrderClient(BaseClient):
def create_order(self, order_data):
return self._request("POST", "/orders", json=order_data)