Struct EasyHttpWebClient
pub struct EasyHttpWebClient<I1 = (), I2 = ()> { /* private fields */ }
Expand description
An opiniated http client that can be used to serve HTTP requests.
You can fork this http client in case you have use cases not possible with this service example. E.g. perhaps you wish to have middleware in into outbound requests, after they passed through your “connector” setup. All this and more is possible by defining your own http client. Rama is here to empower you, the building blocks are there, go crazy with your own service fork and use the full power of Rust at your fingertips ;)
Implementations§
§impl EasyHttpWebClient
impl EasyHttpWebClient
pub fn new() -> EasyHttpWebClient
pub fn new() -> EasyHttpWebClient
Create a new EasyHttpWebClient
.
§impl<I1, I2> EasyHttpWebClient<I1, I2>
impl<I1, I2> EasyHttpWebClient<I1, I2>
pub fn set_tls_config(
&mut self,
cfg: impl Into<Arc<ClientConfig>>,
) -> &mut EasyHttpWebClient<I1, I2>
pub fn set_tls_config( &mut self, cfg: impl Into<Arc<ClientConfig>>, ) -> &mut EasyHttpWebClient<I1, I2>
Set the ClientConfig
of this EasyHttpWebClient
.
pub fn with_tls_config(
self,
cfg: impl Into<Arc<ClientConfig>>,
) -> EasyHttpWebClient<I1, I2>
pub fn with_tls_config( self, cfg: impl Into<Arc<ClientConfig>>, ) -> EasyHttpWebClient<I1, I2>
Replace this EasyHttpWebClient
with the ClientConfig
set.
pub fn maybe_with_tls_config(
self,
cfg: Option<impl Into<Arc<ClientConfig>>>,
) -> EasyHttpWebClient<I1, I2>
pub fn maybe_with_tls_config( self, cfg: Option<impl Into<Arc<ClientConfig>>>, ) -> EasyHttpWebClient<I1, I2>
Replace this EasyHttpWebClient
with an option of ClientConfig
set.
pub fn set_proxy_tls_config(
&mut self,
cfg: impl Into<Arc<ClientConfig>>,
) -> &mut EasyHttpWebClient<I1, I2>
pub fn set_proxy_tls_config( &mut self, cfg: impl Into<Arc<ClientConfig>>, ) -> &mut EasyHttpWebClient<I1, I2>
Set the ClientConfig
for the https proxy tunnel if needed within this EasyHttpWebClient
.
pub fn with_proxy_tls_config(
self,
cfg: impl Into<Arc<ClientConfig>>,
) -> EasyHttpWebClient<I1, I2>
pub fn with_proxy_tls_config( self, cfg: impl Into<Arc<ClientConfig>>, ) -> EasyHttpWebClient<I1, I2>
Replace this EasyHttpWebClient
set for the https proxy tunnel if needed within this ClientConfig
.
pub fn maybe_proxy_with_tls_config(
self,
cfg: Option<impl Into<Arc<ClientConfig>>>,
) -> EasyHttpWebClient<I1, I2>
pub fn maybe_proxy_with_tls_config( self, cfg: Option<impl Into<Arc<ClientConfig>>>, ) -> EasyHttpWebClient<I1, I2>
Replace this EasyHttpWebClient
set for the https proxy tunnel if needed within this ClientConfig
.
pub fn with_http_conn_req_inspector<T>( self, http_req_inspector: T, ) -> EasyHttpWebClient<T, I2>
pub fn with_http_serve_req_inspector<T>( self, http_req_inspector: T, ) -> EasyHttpWebClient<I1, T>
Trait Implementations§
§impl<I1, I2> Clone for EasyHttpWebClient<I1, I2>
impl<I1, I2> Clone for EasyHttpWebClient<I1, I2>
§fn clone(&self) -> EasyHttpWebClient<I1, I2>
fn clone(&self) -> EasyHttpWebClient<I1, I2>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl<I1, I2> Debug for EasyHttpWebClient<I1, I2>
impl<I1, I2> Debug for EasyHttpWebClient<I1, I2>
§impl Default for EasyHttpWebClient
impl Default for EasyHttpWebClient
§fn default() -> EasyHttpWebClient
fn default() -> EasyHttpWebClient
§impl<State, BodyIn, BodyOut, I1, I2> Service<State, Request<BodyIn>> for EasyHttpWebClient<I1, I2>where
State: Clone + Send + Sync + 'static,
BodyIn: Body + Unpin + Send + 'static,
<BodyIn as Body>::Data: Send + 'static,
<BodyIn as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
BodyOut: Body + Unpin + Send + 'static,
<BodyOut as Body>::Data: Send + 'static,
<BodyOut as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
I1: RequestInspector<State, Request<BodyIn>, StateOut = State, RequestOut = Request<BodyIn>> + Clone,
<I1 as RequestInspector<State, Request<BodyIn>>>::Error: Into<Box<dyn Error + Send + Sync>>,
I2: RequestInspector<State, Request<BodyIn>, RequestOut = Request<BodyOut>> + Clone,
<I2 as RequestInspector<State, Request<BodyIn>>>::Error: Into<Box<dyn Error + Send + Sync>>,
impl<State, BodyIn, BodyOut, I1, I2> Service<State, Request<BodyIn>> for EasyHttpWebClient<I1, I2>where
State: Clone + Send + Sync + 'static,
BodyIn: Body + Unpin + Send + 'static,
<BodyIn as Body>::Data: Send + 'static,
<BodyIn as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
BodyOut: Body + Unpin + Send + 'static,
<BodyOut as Body>::Data: Send + 'static,
<BodyOut as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
I1: RequestInspector<State, Request<BodyIn>, StateOut = State, RequestOut = Request<BodyIn>> + Clone,
<I1 as RequestInspector<State, Request<BodyIn>>>::Error: Into<Box<dyn Error + Send + Sync>>,
I2: RequestInspector<State, Request<BodyIn>, RequestOut = Request<BodyOut>> + Clone,
<I2 as RequestInspector<State, Request<BodyIn>>>::Error: Into<Box<dyn Error + Send + Sync>>,
§type Error = OpaqueError
type Error = OpaqueError
§async fn serve(
&self,
ctx: Context<State>,
req: Request<BodyIn>,
) -> Result<<EasyHttpWebClient<I1, I2> as Service<State, Request<BodyIn>>>::Response, <EasyHttpWebClient<I1, I2> as Service<State, Request<BodyIn>>>::Error>
async fn serve( &self, ctx: Context<State>, req: Request<BodyIn>, ) -> Result<<EasyHttpWebClient<I1, I2> as Service<State, Request<BodyIn>>>::Response, <EasyHttpWebClient<I1, I2> as Service<State, Request<BodyIn>>>::Error>
§fn boxed(self) -> BoxService<S, Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<S, Request, Self::Response, Self::Error>
Auto Trait Implementations§
impl<I1, I2> Freeze for EasyHttpWebClient<I1, I2>
impl<I1, I2> RefUnwindSafe for EasyHttpWebClient<I1, I2>where
I1: RefUnwindSafe,
I2: RefUnwindSafe,
impl<I1, I2> Send for EasyHttpWebClient<I1, I2>
impl<I1, I2> Sync for EasyHttpWebClient<I1, I2>
impl<I1, I2> Unpin for EasyHttpWebClient<I1, I2>
impl<I1, I2> UnwindSafe for EasyHttpWebClient<I1, I2>where
I1: UnwindSafe,
I2: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<State, S, Body> HttpClientExt<State> for S
impl<State, S, Body> HttpClientExt<State> for S
§type ExecuteResponse = Response<Body>
type ExecuteResponse = Response<Body>
execute
method.§type ExecuteError = <S as Service<State, Request<Body>>>::Error
type ExecuteError = <S as Service<State, Request<Body>>>::Error
execute
method.§fn get(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
fn get( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
GET
request to a URL. Read more§fn post(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
fn post( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
POST
request to a URL. Read more§fn put(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
fn put( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
PUT
request to a URL. Read more§fn patch(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
fn patch( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
PATCH
request to a URL. Read more§fn delete(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
fn delete( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
DELETE
request to a URL. Read more§fn head(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
fn head( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
HEAD
request to a URL. Read more§fn request(
&self,
method: Method,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
fn request( &self, method: Method, url: impl IntoUrl, ) -> RequestBuilder<'_, S, State, <S as HttpClientExt<State>>::ExecuteResponse>
§fn execute(
&self,
ctx: Context<State>,
request: Request<Body>,
) -> impl Future<Output = Result<<S as HttpClientExt<State>>::ExecuteResponse, <S as HttpClientExt<State>>::ExecuteError>>
fn execute( &self, ctx: Context<State>, request: Request<Body>, ) -> impl Future<Output = Result<<S as HttpClientExt<State>>::ExecuteResponse, <S as HttpClientExt<State>>::ExecuteError>>
Request
. Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<S, P, B, E>(self, other: P) -> And<T, P>
fn and<S, P, B, E>(self, other: P) -> And<T, P>
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.