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::Connect
to 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.