3个版本 (1个稳定版)

3.2.0 2022年2月22日
2.2.0 2022年2月22日
2.1.2-alpha.22021年9月30日

编码 中排名第1508

每月下载量35

MIT 许可证

44KB
655

actix-web-4-validator 最新版本

这个crate是一个Rust库,用于通过Validator crate为actix-web提供验证机制。

它是https://github.com/rambler-digital-solutions/actix-web-validator的分支。

我分支它,因为那个crate是为了让actix_web 3工作而制作的,而我需要它为actix_web 4工作

安装

这个crate与Cargo一起工作,可以在crates.io上找到,其Cargo.toml如下

[dependencies]
actix-web-4-validator = "3.2.0"
validator = { version = "0.14", 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_4_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)

依赖项

~22–35MB
~620K SLoC