Package io.gorules.zen.loader
Class ApiLoaderConfig.Builder
java.lang.Object
io.gorules.zen.loader.ApiLoaderConfig.Builder
- Enclosing class:
ApiLoaderConfig
Builder for ApiLoaderConfig with flexible header configuration.
-
Method Summary
Modifier and TypeMethodDescriptionAdd Basic authentication header.bearerToken(String token) Add Bearer token authorization header.build()Build the ApiLoaderConfig.Set cache eviction policy.cacheMaxMemoryMb(long maxMemoryMb) Set maximum cache memory in MB.cacheMaxSize(long maxSize) Set maximum cache size (number of entries).Set cache TTL (time to live).caching(boolean enable) Enable or disable caching of loaded decisions.Add a single HTTP header.headerProvider(HeaderProvider provider) Set a provider for dynamic headers that are computed per request.Add multiple headers at once from a Map.maxRetries(int maxRetries) Set maximum number of retry attempts for failed requests.retryDelay(Duration retryDelay) Set delay between retry attempts.Set request timeout.
-
Method Details
-
header
Add a single HTTP header. Can be called multiple times to add multiple headers.- Parameters:
name- Header name (e.g., "Authorization", "X-API-Key")value- Header value- Returns:
- this builder
-
headers
Add multiple headers at once from a Map.- Parameters:
headers- Map of header names to values- Returns:
- this builder
-
bearerToken
Add Bearer token authorization header. Convenience method for: header("Authorization", "Bearer " + token)- Parameters:
token- Bearer token- Returns:
- this builder
-
basicAuth
Add Basic authentication header. Convenience method for: header("Authorization", "Basic " + base64(username:password))- Parameters:
username- Usernamepassword- Password- Returns:
- this builder
-
headerProvider
Set a provider for dynamic headers that are computed per request. Useful for headers that change per request like timestamps, request IDs, etc.- Parameters:
provider- HeaderProvider instance- Returns:
- this builder
-
timeout
Set request timeout.- Parameters:
timeout- Timeout duration (default: 30 seconds)- Returns:
- this builder
-
maxRetries
Set maximum number of retry attempts for failed requests.- Parameters:
maxRetries- Maximum retries (default: 3)- Returns:
- this builder
-
retryDelay
Set delay between retry attempts.- Parameters:
retryDelay- Delay duration (default: 1 second)- Returns:
- this builder
-
caching
Enable or disable caching of loaded decisions.- Parameters:
enable- true to enable caching (default: true)- Returns:
- this builder
-
cacheTtl
Set cache TTL (time to live). Entries will be automatically expired after this duration from write.- Parameters:
ttl- Cache TTL duration (default: 5 minutes)- Returns:
- this builder
-
cacheMaxSize
Set maximum cache size (number of entries).- Parameters:
maxSize- Maximum number of entries (default: 10000)- Returns:
- this builder
-
cacheMaxMemoryMb
Set maximum cache memory in MB. Cache will evict entries when memory limit is reached.- Parameters:
maxMemoryMb- Maximum memory in MB (default: 100)- Returns:
- this builder
-
cacheEvictionPolicy
Set cache eviction policy.- Parameters:
policy- Eviction policy (default: LRU)- Returns:
- this builder
-
build
Build the ApiLoaderConfig.- Returns:
- ApiLoaderConfig instance
-