Skip to main content

Crate vld_axum

Crate vld_axum 

Source
Expand description

§vld-axum — Axum integration for the vld validation library

Provides extractors that validate request data using vld schemas:

ExtractorReplacesSource
VldJson<T>axum::Json<T>JSON request body
VldQuery<T>axum::extract::Query<T>URL query parameters
VldPath<T>axum::extract::Path<T>URL path parameters
VldForm<T>axum::extract::Form<T>URL-encoded form body
VldHeaders<T>manual header extractionHTTP headers
VldCookie<T>manual cookie parsingCookie values

All extractors return 422 Unprocessable Entity on validation failure.

§Quick example

use axum::{Router, routing::post};
use vld::prelude::*;
use vld_axum::{VldPath, VldQuery, VldJson, VldHeaders};

vld::schema! {
    #[derive(Debug)]
    pub struct PathParams {
        pub id: i64 => vld::number().int().min(1),
    }
}

vld::schema! {
    #[derive(Debug)]
    pub struct Auth {
        pub authorization: String => vld::string().min(1),
    }
}

vld::schema! {
    #[derive(Debug)]
    pub struct Body {
        pub name: String => vld::string().min(2),
    }
}

async fn handler(
    VldPath(path): VldPath<PathParams>,
    VldHeaders(headers): VldHeaders<Auth>,
    VldJson(body): VldJson<Body>,
) -> String {
    format!("id={} auth={} name={}", path.id, headers.authorization, body.name)
}

Modules§

prelude
Prelude — import everything you need.

Structs§

VldCookie
Axum extractor that validates cookie values from the Cookie header.
VldForm
Axum extractor that validates URL-encoded form bodies (application/x-www-form-urlencoded).
VldHeaders
Axum extractor that validates HTTP headers.
VldJson
Axum extractor that validates JSON request bodies.
VldJsonRejection
Rejection type returned when validation fails.
VldPath
Axum extractor that validates URL path parameters.
VldQuery
Axum extractor that validates URL query parameters.