Crate garde_actix_web
source ·Expand description
Actix-web wrapper for garde, a Rust validation library.
§Installation
[dependencies]
garde = "0.18"
garde-actix-web = "0.7"
§Usage example
Simply use garde-actix-web
exposed types as a drop in for actix types.
Your types must implement Validate
from garde
. Validation happens during actix’s FromRequest
invocation.
If payload is invalid, a 400 error is returned (404 for Path).
Custom error handling can be implemented with an extractor config (garde_actix_web::web::QueryConfig
in place of actix_web::web::QueryConfig
for example).
use actix_web::HttpResponse;
// instead of actix_web::web::Path
use garde_actix_web::web::Path;
use garde::Validate;
#[derive(Validate)]
struct MyStruct<'a> {
#[garde(ascii, length(min=3, max=25))]
username: &'a str,
}
fn test(id: Path<MyStruct>) -> HttpResponse {
todo!()
}
⚠️ When using garde
custom validation, the Context
type needs to implement Default
which is not required by garde
.
§Feature flags
name | description | extra dependencies |
---|---|---|
serde_qs | Enables the usage of garde for serde_qs::actix::QsQuery<T> | serde_qs |
§Compatibility matrix
garde version | serde_qs version | garde-actix-web-version |
---|---|---|
0.14 | 0.12 | 0.1.x |
0.15 | 0.12 | 0.2.x |
0.16 | 0.12 | 0.3.x |
0.17 | 0.12 | 0.4.x |
0.18 | 0.12 | 0.5.x , 0.6.x |
0.18 | 0.13 | 0.7.x |
0.19 | 0.13 | 0.8.x |
0.20 | 0.13 | 0.9.x |
Modules§
- Error exposed by garde-actix-web
- Drop in types for actix web implementing garde