case class HttpClientConfig(name: String = "default", backend: HttpClientBackend = Compat.defaultHttpClientBackend, requestFilter: (Request) ⇒ Request = identity, responseFilter: (Response) ⇒ Response = identity, rpcEncoding: RPCEncoding = RPCEncoding.JSON, retryContext: RetryContext = ..., codecFactory: MessageCodecFactory = ..., circuitBreaker: CircuitBreaker = ..., connectTimeout: Duration = Duration(90, TimeUnit.SECONDS), readTimeout: Duration = Duration(90, TimeUnit.SECONDS), clientFilter: RxHttpFilter = RxHttpFilter.identity, httpLoggerConfig: HttpLoggerConfig = ..., httpLoggerProvider: (HttpLoggerConfig) ⇒ HttpLogger = ..., loggingFilter: (HttpLogger) ⇒ HttpClientFilter = ..., useFetchAPI: Boolean = false, useHttp1: Boolean = false) extends HttpChannelConfig with Product with Serializable
A common immutable configuration for all HTTP clients in airframe-http. To modify any configuration, use withXXX methods.
The generated HTTP client has multiple layers of filters:
- requestFilter: A filter to modify the request before sending it to the backend. This can be used for adding common HTTP headers (e.g., User-Agent, Authentication header, etc.)
- clientFilter: A filter to modify the request/response.
- loggingFilter: A filter to log individual requests and responses, including retried requests. The default behavior is logging each request with its response stats to log/http_client.json file.
- responseFilter: A filter to modify the response before returning it to the caller.
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- HttpClientConfig
- Serializable
- Serializable
- Product
- Equals
- HttpChannelConfig
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
- new HttpClientConfig(name: String = "default", backend: HttpClientBackend = Compat.defaultHttpClientBackend, requestFilter: (Request) ⇒ Request = identity, responseFilter: (Response) ⇒ Response = identity, rpcEncoding: RPCEncoding = RPCEncoding.JSON, retryContext: RetryContext = ..., codecFactory: MessageCodecFactory = ..., circuitBreaker: CircuitBreaker = ..., connectTimeout: Duration = Duration(90, TimeUnit.SECONDS), readTimeout: Duration = Duration(90, TimeUnit.SECONDS), clientFilter: RxHttpFilter = RxHttpFilter.identity, httpLoggerConfig: HttpLoggerConfig = ..., httpLoggerProvider: (HttpLoggerConfig) ⇒ HttpLogger = ..., loggingFilter: (HttpLogger) ⇒ HttpClientFilter = ..., useFetchAPI: Boolean = false, useHttp1: Boolean = false)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- val backend: HttpClientBackend
- val circuitBreaker: CircuitBreaker
- val clientFilter: RxHttpFilter
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
- val codecFactory: MessageCodecFactory
-
val
connectTimeout: Duration
- Definition Classes
- HttpClientConfig → HttpChannelConfig
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- val httpLoggerConfig: HttpLoggerConfig
- val httpLoggerProvider: (HttpLoggerConfig) ⇒ HttpLogger
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val loggingFilter: (HttpLogger) ⇒ HttpClientFilter
- val name: String
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newAsyncClient(serverAddress: String): AsyncClient
- def newHttpLogger(dest: ServerAddress): HttpLogger
-
def
newJSClient: AsyncClient
Create a default Async client for Scala.js in web browsers
- def newLoggingFilter(logger: HttpLogger): HttpClientFilter
- def newSyncClient(serverAddress: String): SyncClient
- def noCircuitBreaker: HttpClientConfig
-
def
noClientFilter: HttpClientConfig
Remove any client-side filter
-
def
noLogging: HttpClientConfig
Disable http-client side logging
- def noRequestFilter: HttpClientConfig
- def noResponseFilter: HttpClientConfig
- def noRetry: HttpClientConfig
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
val
readTimeout: Duration
- Definition Classes
- HttpClientConfig → HttpChannelConfig
- val requestFilter: (Request) ⇒ Request
- val responseFilter: (Response) ⇒ Response
- val retryContext: RetryContext
- val rpcEncoding: RPCEncoding
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- val useFetchAPI: Boolean
- val useHttp1: Boolean
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- def withBackend(newBackend: HttpClientBackend): HttpClientConfig
- def withCircuitBreaker(f: (CircuitBreaker) ⇒ CircuitBreaker): HttpClientConfig
-
def
withClientFilter(filter: RxHttpFilter): HttpClientConfig
Add a new RxClientFilter.
Add a new RxClientFilter. This filter is useful for adding a common error handling logic for the Rx[Response].
- def withCodecFactory(newCodecFactory: MessageCodecFactory): HttpClientConfig
- def withConnectTimeout(duration: Duration): HttpClientConfig
-
def
withDebugConsoleLogger: HttpClientConfig
Use Debug Console http logging
- def withExtraLogEntries(extraEntryGenerator: () ⇒ Map[String, Any]): HttpClientConfig
- def withFetchAPI: HttpClientConfig
-
def
withHTTP1: HttpClientConfig
Enforce using Http/1.1 if you experience GOAWAY error in HTTP/2
- def withHttpLogger(loggerProvider: (HttpLoggerConfig) ⇒ HttpLogger): HttpClientConfig
- def withJSONEncoding: HttpClientConfig
-
def
withLoggerConfig(f: (HttpLoggerConfig) ⇒ HttpLoggerConfig): HttpClientConfig
Customize logger configuration
- def withMsgPackEncoding: HttpClientConfig
- def withName(name: String): HttpClientConfig
- def withRPCEncoding(newEncoding: RPCEncoding): HttpClientConfig
- def withReadTimeout(duration: Duration): HttpClientConfig
-
def
withRequestFilter(newRequestFilter: (Request) ⇒ Request): HttpClientConfig
Add a custom request filter, e.g., for adding Authentication headers
-
def
withResponseFilter(newResponseFilter: (Response) ⇒ Response): HttpClientConfig
Add a custom response filter to the last response, mostly for debugging purpose
- def withRetryContext(filter: (RetryContext) ⇒ RetryContext): HttpClientConfig
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated