19 releases (stable)
| 7.0.0 | Aug 11, 2025 |
|---|---|
| 6.0.0 | Jul 11, 2024 |
| 5.0.1 | Aug 25, 2022 |
| 4.0.0 | Jul 18, 2022 |
| 0.1.2 | Feb 28, 2020 |
#267 in Encoding
17,080 downloads per month
Used in 5 crates
43KB
577 lines
actix-web-validator

This crate is a Rust library for providing validation mechanism to actix-web with Validator crate.
Installation
This crate works with Cargo and can be found on
crates.io with a Cargo.toml like:
[dependencies]
actix-web-validator = "7.0.0"
validator = { version = "0.20", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
Supported extractors:
actix_web::web::Jsonactix_web::web::Queryactix_web::web::Pathactix_web::web::Formserde_qs::actix::QsQuery
Supported actix_web versions:
- For actix-web-validator
0.*supported version of actix-web is1.* - For actix-web-validator
1.*supported version of actix-web is2.* - For actix-web-validator
2.*supported version of actix-web is3.* - For actix-web-validator
3+supported version of actix-web is4.*
Example:
use actix_web::{web, App};
use serde::Deserialize;
use actix_web_validator::Query;
use validator::Validate;
#[derive(Debug, Deserialize)]
pub enum ResponseType {
Token,
Code
}
#[derive(Deserialize, Validate)]
pub struct AuthRequest {
#[validate(range(min = 1000, max = 9999))]
id: u64,
response_type: ResponseType,
}
// Use `Query` extractor for query information (and destructure it within the signature).
// This handler gets called only if the request's query string contains a `id` and
// `response_type` fields.
// The correct request for this handler would be `/index.html?id=1234&response_type=Code"`.
async fn index(info: Query<AuthRequest>) -> String {
format!("Authorization request for client with id={} and type={:?}!", info.id, info.response_type)
}
fn main() {
let app = App::new().service(
web::resource("/index.html").route(web::get().to(index))); // <- use `Query` extractor
}
License
actix-web-validator is licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT)
Dependencies
~21–38MB
~530K SLoC