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编码

Download history 3547/week @ 2024-04-26 4378/week @ 2024-05-03 3830/week @ 2024-05-10 3545/week @ 2024-05-17 3779/week @ 2024-05-24 2603/week @ 2024-05-31 4304/week @ 2024-06-07 2661/week @ 2024-06-14 2618/week @ 2024-06-21 2325/week @ 2024-06-28 2341/week @ 2024-07-05 2985/week @ 2024-07-12 3135/week @ 2024-07-19 3231/week @ 2024-07-26 3433/week @ 2024-08-02 3309/week @ 2024-08-09

每月下载量13,708
用于 5 crates

MIT 许可证

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 许可证下授权(LICENSEhttp://opensource.org/licenses/MIT

依赖项

~17–29MB
~515K SLoC