aws_smithy_runtime_api::client::http

Trait HttpClient

Source
pub trait HttpClient:
    Send
    + Sync
    + Debug {
    // Required method
    fn http_connector(
        &self,
        settings: &HttpConnectorSettings,
        components: &RuntimeComponents,
    ) -> SharedHttpConnector;

    // Provided methods
    fn validate_base_client_config(
        &self,
        runtime_components: &RuntimeComponentsBuilder,
        cfg: &ConfigBag,
    ) -> Result<(), BoxError> { ... }
    fn validate_final_config(
        &self,
        runtime_components: &RuntimeComponents,
        cfg: &ConfigBag,
    ) -> Result<(), BoxError> { ... }
}
Expand description

HTTP client abstraction.

A HTTP client implementation must apply connect/read timeout settings, and must maintain a connection pool.

Required Methods§

Source

fn http_connector( &self, settings: &HttpConnectorSettings, components: &RuntimeComponents, ) -> SharedHttpConnector

Returns a HTTP connector based on the requested connector settings.

The settings include connector timeouts, which should be incorporated into the connector. The HttpClient is responsible for caching the connector across requests.

In the future, the settings may have additional parameters added, such as HTTP version, or TLS certificate paths.

Provided Methods§

Source

fn validate_base_client_config( &self, runtime_components: &RuntimeComponentsBuilder, cfg: &ConfigBag, ) -> Result<(), BoxError>

Validate the base client configuration.

This gets called upon client construction. The full config may not be available at this time (hence why it has RuntimeComponentsBuilder as an argument rather than RuntimeComponents). Any error returned here will become a panic in the client constructor.

Source

fn validate_final_config( &self, runtime_components: &RuntimeComponents, cfg: &ConfigBag, ) -> Result<(), BoxError>

Validate the final client configuration.

This gets called immediately after the Intercept::read_before_execution trait hook when the final configuration has been resolved. Any error returned here will cause the operation to return that error.

Implementors§