pub trait Endpoint {
    type Output: IntoResponse + Send;
    type Placeholders: PathExtractor<Body> + Clone + Sync;
    type Params: QueryStringExtractor<Body> + Clone + Sync;
    type Body: RequestBody + Send;

    // Required methods
    fn http_method() -> Method;
    fn uri() -> Cow<'static, str>;
    fn handle(
        state: &mut State,
        placeholders: Self::Placeholders,
        params: Self::Params,
        body: Option<Self::Body>
    ) -> BoxFuture<'_, Self::Output>;

    // Provided methods
    fn has_placeholders() -> bool { ... }
    fn needs_params() -> bool { ... }
    fn needs_body() -> bool { ... }
    fn wants_auth() -> bool { ... }
}

Required Associated Types§

source

type Output: IntoResponse + Send

The output type that provides the response.

source

type Placeholders: PathExtractor<Body> + Clone + Sync

The type that parses the URI placeholders. Use NoopExtractor if has_placeholders() returns false.

source

type Params: QueryStringExtractor<Body> + Clone + Sync

The type that parses the request parameters. Use NoopExtractor if needs_params() returns false.

source

type Body: RequestBody + Send

The type to parse the body into. Use () if needs_body() returns false.

Required Methods§

source

fn http_method() -> Method

The HTTP Verb of this endpoint.

source

fn uri() -> Cow<'static, str>

The URI that this endpoint listens on in gotham’s format.

source

fn handle( state: &mut State, placeholders: Self::Placeholders, params: Self::Params, body: Option<Self::Body> ) -> BoxFuture<'_, Self::Output>

The handler for this endpoint.

Provided Methods§

source

fn has_placeholders() -> bool

Returns true iff the URI contains placeholders. false by default.

source

fn needs_params() -> bool

Returns true iff the request parameters should be parsed. false by default.

source

fn needs_body() -> bool

Returns true iff the request body should be parsed. false by default.

source

fn wants_auth() -> bool

Returns true if the request wants to know the auth status of the client. false by default.

Implementors§