Request

Struct Request 

Source
pub struct Request { /* private fields */ }
Expand description

HTTP Request wrapper

Provides access to all parts of an incoming HTTP request.

Implementations§

Source§

impl Request

Source

pub fn method(&self) -> &Method

Get the HTTP method

Source

pub fn uri(&self) -> &Uri

Get the URI

Source

pub fn version(&self) -> Version

Get the HTTP version

Source

pub fn headers(&self) -> &HeaderMap

Get the headers

Source

pub fn extensions(&self) -> &Extensions

Get request extensions

Source

pub fn extensions_mut(&mut self) -> &mut Extensions

Get mutable extensions

Source

pub fn path(&self) -> &str

Get the request path

Source

pub fn query_string(&self) -> Option<&str>

Get the query string

Source

pub fn take_body(&mut self) -> Option<Bytes>

Take the body bytes (can only be called once)

Returns None if the body is streaming or already consumed. Use load_body().await first if you need to ensure the body is available as bytes.

Source

pub fn take_stream(&mut self) -> Option<Incoming>

Take the body as a stream (can only be called once)

Source

pub async fn load_body(&mut self) -> Result<(), ApiError>

Ensure the body is loaded into memory.

If the body is streaming, this collects it into Bytes. If already buffered, does nothing. Returns error if collection fails.

Source

pub fn path_params(&self) -> &PathParams

Get path parameters

Source

pub fn path_param(&self, name: &str) -> Option<&String>

Get a specific path parameter

Source

pub fn state(&self) -> &Arc<Extensions>

Get shared state

Source

pub fn try_clone(&self) -> Option<Request>

Try to clone the request.

This creates a deep copy of the request, including headers, body (if present), path params, and shared state.

Returns None if the body is streaming (cannot be cloned) or already consumed.

Trait Implementations§

Source§

impl Debug for Request

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more