18个版本 (稳定版)
6.0.0 | 2024年7月11日 |
---|---|
5.0.1 | 2022年8月25日 |
4.0.0 | 2022年7月18日 |
3.0.0 | 2022年3月15日 |
0.1.2 | 2020年2月28日 |
#150 在 编码
每月下载量13,708
用于 5 crates
42KB
577 行
actix-web-validator
此crate是一个Rust库,使用Validator crate为actix-web提供验证机制。
安装
此crate与Cargo兼容,可在crates.io上找到,使用如下Cargo.toml
[dependencies]
actix-web-validator = "6.0.0"
validator = { version = "0.16", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
支持的提取器
actix_web::web::Json
actix_web::web::Query
actix_web::web::Path
actix_web::web::Form
serde_qs::actix::QsQuery
支持的actix_web
版本
- 对于actix-web-validator
0.*
支持的actix-web版本是1.*
- 对于actix-web-validator
1.*
支持的actix-web版本是2.*
- 对于actix-web-validator
2.*
支持的actix-web版本是3.*
- 对于 actix-web-validator 支持的
3+
版本,actix-web 的支持版本是4.*
示例
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
}
许可证
actix-web-validator 在 MIT 许可证下授权(LICENSE 或 http://opensource.org/licenses/MIT)
依赖项
~17–29MB
~515K SLoC