ZetaHttpClientBuilder

Fluent builder for constructing a configured HttpClient instance for the Zeta SDK.

The builder groups configuration into four areas:

  • Base URL: override the server base URL for all requests.

  • Network: connection/request timeouts and retry policy.

  • Security: additional trusted CA certificates (PEM).

  • Monitoring: client log verbosity.

Defaults come from NetworkConfig, SecurityConfig, and MonitoringConfig.

Typical usage:

return ZetaHttpClientBuilder()
.baseUrl("https://base-url.de")
.timeouts(connectMs = 5_000, requestMs = 15_000)
.retry(
statusCodes = setOf(HttpStatusCode.TooManyRequests, HttpStatusCode.ServiceUnavailable),
maxRetries = 3,
onlyIdempotent = true
)
.addCaPem("-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----")
.logging(LogLevel.INFO)
.build()

Thread-safety: the builder is mutable and not thread-safe. Build once and share the resulting HttpClient.

Constructors

Link copied to clipboard
constructor(baseUrl: String)

Functions

Link copied to clipboard

Append an additional trusted Certificate Authority (CA) in PEM format.

Link copied to clipboard
fun build(): HttpClient
fun build(engine: HttpClientEngine? = null): HttpClient
fun build(addExtras: HttpClientConfig<*>.() -> Unit? = null): HttpClient

Build a configured HttpClient using the current builder state.

Link copied to clipboard
fun logging(level: LogLevel, logProvider: Logger = Logger.DEFAULT): ZetaHttpClientBuilder

Set the client log verbosity used for request/response monitoring.

Link copied to clipboard
fun retry(statusCodes: Set<HttpStatusCode> = network.retryStatusCodes, maxRetries: Int = network.maxRetries, onlyIdempotent: Boolean = network.retryOnlyIdempotent): ZetaHttpClientBuilder

Configure automatic retry behavior for responses with specific HTTP status codes.

Link copied to clipboard

Replace the entire list of additional trusted CAs.

Link copied to clipboard
fun timeouts(connectMs: Long? = null, requestMs: Long? = null): ZetaHttpClientBuilder

Configure connection and/or overall request timeouts (milliseconds).