Skip to main content

Request

Struct Request 

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

An incoming HTTP request from the Cufflink platform.

The platform serializes the full request context (method, headers, body, tenant, service name, auth) into JSON and passes it to your handler.

Implementations§

Source§

impl Request

Source

pub fn from_json(json: &str) -> Option<Self>

Parse a Request from the JSON the platform provides.

Source

pub fn method(&self) -> &str

The HTTP method (GET, POST, PUT, DELETE).

Source

pub fn handler(&self) -> &str

The handler name from the URL path.

Source

pub fn headers(&self) -> &HashMap<String, String>

All HTTP headers as a map.

Source

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

Get a specific header value.

Source

pub fn body(&self) -> &Value

The parsed JSON body. Returns Value::Null if no body was sent.

Source

pub fn tenant(&self) -> &str

The tenant slug from the URL.

Source

pub fn service(&self) -> &str

The service name from the URL.

Source

pub fn auth(&self) -> Option<&Auth>

Get the authenticated user context, if present.

Returns None if no valid JWT or API key was provided with the request.

Source

pub fn require_auth(&self) -> Result<&Auth, Response>

Require authentication. Returns the auth context or an error response.

handler!(protected, |req: Request| {
    let auth = match req.require_auth() {
        Ok(auth) => auth,
        Err(resp) => return resp,
    };
    Response::json(&json!({"user": auth.sub}))
});

Trait Implementations§

Source§

impl Clone for Request

Source§

fn clone(&self) -> Request

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Request

Source§

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

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.