Struct WebService
pub struct WebService { /* private fields */ }
Expand description
A basic web service that can be used to serve HTTP requests.
Note that this service boxes all the internal services, so it is not as efficient as it could be.
For those locations where you need do not desire the convenience over performance,
you can instead use a tuple of (M, S)
tuples, where M is a matcher and S is a service,
e.g. ((MethodMatcher::GET, service_a), (MethodMatcher::POST, service_b), service_fallback)
.
Implementations§
§impl WebService
impl WebService
pub fn get<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn get<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a GET route to the web service, using the given service.
pub fn post<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn post<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a POST route to the web service, using the given service.
pub fn put<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn put<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a PUT route to the web service, using the given service.
pub fn delete<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn delete<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a DELETE route to the web service, using the given service.
pub fn patch<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn patch<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a PATCH route to the web service, using the given service.
pub fn head<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn head<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a HEAD route to the web service, using the given service.
pub fn options<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn options<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a OPTIONS route to the web service, using the given service.
pub fn trace<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn trace<I, T>(self, path: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a TRACE route to the web service, using the given service.
pub fn nest<I, T>(self, prefix: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn nest<I, T>(self, prefix: &str, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
nest a web service under the given path.
The nested service will receive a request with the path prefix removed.
pub fn dir(self, prefix: &str, dir: &str) -> WebService
pub fn dir(self, prefix: &str, dir: &str) -> WebService
serve the given directory under the given path.
pub fn on<I, T>(self, matcher: HttpMatcher<Body>, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn on<I, T>(self, matcher: HttpMatcher<Body>, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
add a route to the web service which matches the given matcher, using the given service.
pub fn not_found<I, T>(self, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
pub fn not_found<I, T>(self, service: I) -> WebServicewhere
I: IntoEndpointService<T>,
use the given service in case no match could be found.
Trait Implementations§
§impl Clone for WebService
impl Clone for WebService
§fn clone(&self) -> WebService
fn clone(&self) -> WebService
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for WebService
impl Debug for WebService
§impl Default for WebService
impl Default for WebService
§fn default() -> WebService
fn default() -> WebService
§impl Service<Request<Body>> for WebService
impl Service<Request<Body>> for WebService
§type Error = Infallible
type Error = Infallible
§async fn serve(
&self,
ctx: Context,
req: Request<Body>,
) -> Result<<WebService as Service<Request<Body>>>::Response, <WebService as Service<Request<Body>>>::Error>
async fn serve( &self, ctx: Context, req: Request<Body>, ) -> Result<<WebService as Service<Request<Body>>>::Response, <WebService as Service<Request<Body>>>::Error>
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Auto Trait Implementations§
impl Freeze for WebService
impl !RefUnwindSafe for WebService
impl Send for WebService
impl Sync for WebService
impl Unpin for WebService
impl !UnwindSafe for WebService
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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<S, Body> HttpClientExt for S
impl<S, Body> HttpClientExt for S
§type ExecuteResponse = Response<Body>
type ExecuteResponse = Response<Body>
execute
method.§type ExecuteError = <S as Service<Request<Body>>>::Error
type ExecuteError = <S as Service<Request<Body>>>::Error
execute
method.§fn get(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn get( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
GET
request to a URL. Read more§fn post(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn post( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
POST
request to a URL. Read more§fn put(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn put( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
PUT
request to a URL. Read more§fn patch(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn patch( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
PATCH
request to a URL. Read more§fn delete(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn delete( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
DELETE
request to a URL. Read more§fn head(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn head( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
HEAD
request to a URL. Read more§fn connect(
&self,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn connect( &self, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
CONNECT
request to a URL. Read more§fn request(
&self,
method: Method,
url: impl IntoUrl,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn request( &self, method: Method, url: impl IntoUrl, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
§fn build_from_request<RequestBody>(
&self,
request: Request<RequestBody>,
) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
fn build_from_request<RequestBody>( &self, request: Request<RequestBody>, ) -> RequestBuilder<'_, S, <S as HttpClientExt>::ExecuteResponse>
§fn execute(
&self,
ctx: Context,
request: Request<Body>,
) -> impl Future<Output = Result<<S as HttpClientExt>::ExecuteResponse, <S as HttpClientExt>::ExecuteError>>
fn execute( &self, ctx: Context, request: Request<Body>, ) -> impl Future<Output = Result<<S as HttpClientExt>::ExecuteResponse, <S as HttpClientExt>::ExecuteError>>
Request
. Read more§impl<S, Body> HttpClientWebSocketExt<Body> for S
impl<S, Body> HttpClientWebSocketExt<Body> for S
§fn websocket(
&self,
url: impl IntoUrl,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket( &self, url: impl IntoUrl, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
WebSocketRequestBuilder
] to be used to establish a WebSocket connection over http/1.1.§fn websocket_h2(
&self,
url: impl IntoUrl,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket_h2( &self, url: impl IntoUrl, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
WebSocketRequestBuilder
to be used to establish a WebSocket connection over h2.§fn websocket_with_request<RequestBody>(
&self,
req: Request<RequestBody>,
) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
fn websocket_with_request<RequestBody>( &self, req: Request<RequestBody>, ) -> WebSocketRequestBuilder<WithService<'_, S, Body>>
WebSocketRequestBuilder
starting from the given 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<S, R> IntoEndpointService<(R,)> for Swhere
S: Service<Request<Body>, Response = R, Error = Infallible>,
R: IntoResponse + Send + Sync + 'static,
impl<S, R> IntoEndpointService<(R,)> for Swhere
S: Service<Request<Body>, Response = R, Error = Infallible>,
R: IntoResponse + Send + Sync + 'static,
§fn into_endpoint_service(
self,
) -> impl Service<Request<Body>, Response = Response<Body>, Error = Infallible>
fn into_endpoint_service( self, ) -> impl Service<Request<Body>, Response = Response<Body>, Error = Infallible>
rama_core::Service
.§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<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more