Skip to main content

FromRequest

Trait FromRequest 

Source
pub trait FromRequest: Sized {
    type Error: IntoResponse;

    // Required method
    fn from_request(
        ctx: &RequestContext,
        req: &mut Request,
    ) -> impl Future<Output = Result<Self, Self::Error>> + Send;
}
Expand description

Trait for types that can be extracted from a request.

This is the core abstraction for request handlers. Each parameter in a handler function implements this trait.

The ctx parameter provides access to the request context, including asupersync’s capability context for cancellation checkpoints and budget-aware operations.

§Example

use fastapi_core::{FromRequest, Request, RequestContext};

struct MyExtractor(String);

impl FromRequest for MyExtractor {
    type Error = std::convert::Infallible;

    async fn from_request(
        ctx: &RequestContext,
        req: &mut Request,
    ) -> Result<Self, Self::Error> {
        // Check for cancellation before expensive work
        let _ = ctx.checkpoint();
        Ok(MyExtractor("extracted".to_string()))
    }
}

Required Associated Types§

Source

type Error: IntoResponse

Error type when extraction fails.

Required Methods§

Source

fn from_request( ctx: &RequestContext, req: &mut Request, ) -> impl Future<Output = Result<Self, Self::Error>> + Send

Extract a value from the request.

§Parameters
  • ctx: The request context providing access to asupersync capabilities
  • req: The HTTP request to extract from

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T: FromRequest> FromRequest for Option<T>

Source§

type Error = Infallible

Source§

async fn from_request( ctx: &RequestContext, req: &mut Request, ) -> Result<Self, Self::Error>

Implementors§

Source§

impl FromRequest for AcceptEncodingHeader

Source§

impl FromRequest for AcceptHeader

Source§

impl FromRequest for AcceptLanguageHeader

Source§

impl FromRequest for ApiKeyCookie

Source§

impl FromRequest for ApiKeyHeader

Source§

impl FromRequest for ApiKeyQuery

Source§

impl FromRequest for BackgroundTasks

Source§

impl FromRequest for BasicAuth

Source§

impl FromRequest for BearerToken

Source§

impl FromRequest for Bytes

Source§

impl FromRequest for DigestAuth

Source§

impl FromRequest for File

Source§

impl FromRequest for Multipart

Source§

impl FromRequest for OAuth2AuthorizationCodeBearer

Source§

impl FromRequest for OAuth2PasswordBearer

Source§

impl FromRequest for OAuth2PasswordRequestForm

Source§

impl FromRequest for OAuth2PasswordRequestFormStrict

Source§

impl FromRequest for Pagination

Source§

impl FromRequest for RequestContext

Source§

impl FromRequest for RequestCookies

Source§

impl FromRequest for RequestRef

Source§

impl FromRequest for ResponseMutations

Source§

impl FromRequest for SecurityScopes

Source§

impl FromRequest for StringBody

Source§

impl<T> FromRequest for State<T>
where T: Clone + Send + Sync + 'static,

Source§

impl<T, C> FromRequest for Depends<T, C>

Source§

impl<T, C> FromRequest for DependsCleanup<T, C>
where T: FromDependencyWithCleanup<Value = T>, C: DependsConfig,

Source§

impl<T, N> FromRequest for NamedHeader<T, N>
where T: FromHeaderValue + Send + Sync + 'static, N: HeaderName + Send + Sync + 'static,

Source§

impl<T: DeserializeOwned> FromRequest for Form<T>

Source§

impl<T: DeserializeOwned> FromRequest for Json<T>

Source§

impl<T: DeserializeOwned> FromRequest for Path<T>

Source§

impl<T: DeserializeOwned> FromRequest for Query<T>

Source§

impl<T: CookieName> FromRequest for RequestCookie<T>