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

    // Required methods
    fn http_method() -> Method;
    fn uri() -> Cow<'static, str>;
    fn operation_verb() -> Option<&'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 { ... }
    fn operation_id() -> Option<String> { ... }
    fn description() -> Option<String> { ... }
}

Required Associated Types§

source

type Output: IntoResponse + Send + ResponseSchema

The output type that provides the response.

source

type Placeholders: PathExtractor<Body> + Clone + Sync + OpenapiType

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

source

type Params: QueryStringExtractor<Body> + Clone + Sync + OpenapiType

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 operation_verb() -> Option<&'static str>

The verb used for generating an operation id if Self::operation_id returns None. For example read, read_all, create, update etc.

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.

source

fn operation_id() -> Option<String>

Replace the automatically generated operation id with a custom one. Only relevant for the OpenAPI Specification.

source

fn description() -> Option<String>

Add a description to the openapi specification. Usually taken from the rustdoc comment when using the proc macro.

Object Safety§

This trait is not object safe.

Implementors§