Trait HttpService

Source
pub trait HttpService<ReqBody>: Sealed<ReqBody> {
    type ResBody: Body;
    type Error: Into<Box<dyn StdError + Send + Sync>>;
    type Future: Future<Output = Result<Response<Self::ResBody>, Self::Error>>;
}
Expand description

An asynchronous function from Request to Response.

This is a sealed trait, meaning that it can not be implemented directly. Rather, it is an alias for Services that accept a Request and return a Future that resolves to a Response. External callers should implement Service instead.

Rather than being generic over the request and response, this trait is generic across the request Body and response Body.

See the crate-level service documentation for more information.

See Service for more information.

Required Associated Types§

Source

type ResBody: Body

The Body body of the Response.

Source

type Error: Into<Box<dyn StdError + Send + Sync>>

The error type that can occur within this Service.

Note: Returning an Error to a hyper server, the behavior depends on the protocol. In most cases, hyper will cause the connection to be abruptly aborted. In most cases, it is better to return a Response with a 4xx or 5xx status code.

See Service::Error for more information.

Source

type Future: Future<Output = Result<Response<Self::ResBody>, Self::Error>>

The Future returned by this Service.

Implementors§

Source§

impl<T, B1, B2> HttpService<B1> for T
where T: Service<Request<B1>, Response = Response<B2>>, B2: Body, T::Error: Into<Box<dyn StdError + Send + Sync>>,

Source§

type ResBody = B2

Source§

type Error = <T as Service<Request<B1>>>::Error

Source§

type Future = <T as Service<Request<B1>>>::Future