zynagent-first application framework

Back to the API reference

zyn.Guard#

/// The request-only API passed to route guards.
pub const Guard = struct {
    auth: auth_api.Snapshot = .{},
    logger: *const Logger,
    /// The framework-generated request identifier.
    request_id: Request.Id,
    headers: RequestHeaders,
    cookies: RequestCookies,
    locals: *const @typeInfo(@FieldType(Request, "locals")).pointer.child,
    session: *const @FieldType(Request, "session"),
    method: @FieldType(Request, "method"),
    method_string: []const u8,
    url: @FieldType(Request, "url"),
    /// The parsed inbound Content-Type field, or `null` when absent.
    content_type: ?MediaType,
    /// Response formats acceptable to the request in preference order.
    formats: []const Request.Format,

    pub const Format = Request.Format;
    pub const Authorization = Request.Authorization;
    pub const QueryParameters = Request.QueryParameters;

    /// Returns the raw request body when one is present.
    pub fn body(self: *const Guard) ?[]const u8;

    /// Parses the unique Authorization request field.
    pub fn authorization(self: *const Guard) !Authorization;

    /// Returns a decoded matched-route parameter.
    pub fn param(self: *const Guard, key: []const u8) []const u8;

    /// Parses and returns immutable request query fields.
    pub fn query(self: *const Guard) !QueryParameters;
};