ferrox_validation/lib.rs
1//! # Ferrox Validation (`ferrox-validation`)
2//!
3//! `ferrox-validation` provides the `ValidatedJson<T>` extractor for Axum, automating request payload validation
4//! using the `validator` crate before route handlers execute.
5//!
6//! ## Defensive Request Pipeline
7//! In Ferrox's onion architecture, requests containing invalid request bodies (e.g. malformed email addresses, out-of-range numbers)
8//! are short-circuited early with HTTP 400 Bad Request error responses before business logic is invoked.
9//!
10//! ## Key Features
11//! - 🛡️ **`ValidatedJson<T>` Extractor**: Automatic JSON payload deserialization and constraint validation.
12//! - ❌ **Detailed Error Reporting**: Returns structured JSON arrays detailing every field constraint failure.
13
14pub mod extractor;
15
16pub use extractor::ValidatedJson;
17pub use validator::{Validate, ValidationError, ValidationErrors};
18
19pub fn setup() {
20 println!("ferrox-validation initialized: AutoZod validation extractor is ready.");
21}