pub struct Client<S, C>where
S: Service<(Request<Body>, C), Response = Response<Body>> + Clone + Sync + Send + 'static,
S::Future: Send + 'static,
S::Error: Into<Box<dyn Error + Send + Sync + 'static>> + Display,
C: Clone + Send + Sync + 'static,{ /* private fields */ }Expand description
A client that implements the API by making HTTP calls out to a server.
Implementations§
Source§impl<Connector, C> Client<DropContextService<Client<Connector, Body>, C>, C>
impl<Connector, C> Client<DropContextService<Client<Connector, Body>, C>, C>
Sourcepub fn try_new_with_connector(
base_path: &str,
protocol: Option<&'static str>,
connector: Connector,
) -> Result<Self, ClientInitError>
pub fn try_new_with_connector( base_path: &str, protocol: Option<&'static str>, connector: Connector, ) -> Result<Self, ClientInitError>
Create a client with a custom implementation of hyper::client::Connect.
Intended for use with custom implementations of connect for e.g. protocol logging
or similar functionality which requires wrapping the transport layer. When wrapping a TCP connection,
this function should be used in conjunction with swagger::Connector::builder().
For ordinary tcp connections, prefer the use of try_new_http, try_new_https
and try_new_https_mutual, to avoid introducing a dependency on the underlying transport layer.
§Arguments
base_path- base path of the client API, i.e. “http://www.my-api-implementation.com”protocol- Which protocol to use when constructing the request url, e.g.Some("http")connector- Implementation ofhyper::client::Connectto use for the client
Source§impl<C> Client<DropContextService<HyperClient, C>, C>
impl<C> Client<DropContextService<HyperClient, C>, C>
Source§impl<C> Client<DropContextService<Client<HttpConnector, Body>, C>, C>
impl<C> Client<DropContextService<Client<HttpConnector, Body>, C>, C>
Sourcepub fn try_new_http(base_path: &str) -> Result<Self, ClientInitError>
pub fn try_new_http(base_path: &str) -> Result<Self, ClientInitError>
Create an HTTP client.
§Arguments
base_path- base path of the client API, i.e. “http://www.my-api-implementation.com”
Source§impl<C> Client<DropContextService<Client<HttpsConnector<HttpConnector>, Body>, C>, C>
impl<C> Client<DropContextService<Client<HttpsConnector<HttpConnector>, Body>, C>, C>
Sourcepub fn try_new_https(base_path: &str) -> Result<Self, ClientInitError>
pub fn try_new_https(base_path: &str) -> Result<Self, ClientInitError>
Create a client with a TLS connection to the server
§Arguments
base_path- base path of the client API, i.e. “https://www.my-api-implementation.com”
Sourcepub fn try_new_https_pinned<CA>(
base_path: &str,
ca_certificate: CA,
) -> Result<Self, ClientInitError>
pub fn try_new_https_pinned<CA>( base_path: &str, ca_certificate: CA, ) -> Result<Self, ClientInitError>
Create a client with a TLS connection to the server using a pinned certificate
§Arguments
base_path- base path of the client API, i.e. “https://www.my-api-implementation.com”ca_certificate- Path to CA certificate used to authenticate the server
Sourcepub fn try_new_https_mutual<CA, K, D>(
base_path: &str,
ca_certificate: CA,
client_key: K,
client_certificate: D,
) -> Result<Self, ClientInitError>
pub fn try_new_https_mutual<CA, K, D>( base_path: &str, ca_certificate: CA, client_key: K, client_certificate: D, ) -> Result<Self, ClientInitError>
Create a client with a mutually authenticated TLS connection to the server.
§Arguments
base_path- base path of the client API, i.e. “https://www.my-api-implementation.com”ca_certificate- Path to CA certificate used to authenticate the serverclient_key- Path to the client private keyclient_certificate- Path to the client’s public certificate associated with the private key
Source§impl<S, C> Client<S, C>
impl<S, C> Client<S, C>
Sourcepub fn try_new_with_client_service(
client_service: S,
base_path: &str,
) -> Result<Self, ClientInitError>
pub fn try_new_with_client_service( client_service: S, base_path: &str, ) -> Result<Self, ClientInitError>
Constructor for creating a Client by passing in a pre-made hyper::service::Service /
tower::Service
This allows adding custom wrappers around the underlying transport, for example for logging.