#actix-web #validation #json-schema #serde #web-request

actix-web-jsonschema

Actix Web的JsonSchema验证提取器

6个稳定版本

1.1.2 2023年5月2日
1.1.1 2023年2月26日
1.1.0 2022年12月1日
1.0.2 2022年11月10日

#922 in HTTP服务器

Download history 29/week @ 2024-03-13 51/week @ 2024-03-20 35/week @ 2024-03-27 19/week @ 2024-04-03 23/week @ 2024-04-10 10/week @ 2024-04-17 24/week @ 2024-05-01 76/week @ 2024-05-08 13/week @ 2024-05-15 21/week @ 2024-05-22 9/week @ 2024-05-29 2/week @ 2024-06-05 2/week @ 2024-06-12 33/week @ 2024-06-19 40/week @ 2024-06-26

每月下载量:77

MIT 许可证

25KB
394

actix-web-jsonschema

Latest Version Documentation GitHub license

这个Crate是一个Rust库,为actix-web提供与jsonschema crate的验证机制。

有关此Crate的更多信息,请参阅Crate文档

安装

这个Crate与Cargo一起工作,可以在crates.io上找到,Cargo.toml文件如下:

[dependencies]
actix-web = { version = "4", features = ["macros"] }
actix-web-jsonschema = { version = "1", features = ["validator"] }
serde = { version = "1", features = ["derive"] }
schemars = { version = "0.8" }
validator = { version = "0.16", features = ["derive"] }

功能标志

支持的提取器

actix_web actix_web_jsonschema
actix_web::web::Path actix_web_jsonschema::Path
actix_web::web::Query actix_web_jsonschema::Query
actix_web::web::Form actix_web_jsonschema::Form
actix_web::web::Json actix_web_jsonschema::Json
serde_qs::actix::QsQuery actix_web_jsonschema::QsQuery

示例

use actix_web::{web, App};
use serde::Deserialize;
use schemars::JsonSchema;
use validator::Validate;
use actix_web_jsonschema::Query;

#[derive(Deserialize, JsonSchema, Validate)]
struct Request {
    #[validate(length(min = 1, max = 20))]
    name: String,
}

async fn index(Query(Request{ name }): Query<Request>) -> String {
    format!("Hello, {name}!")
}

fn main() {
    let app = App::new().service(
        web::resource("/hello").route(web::get().to(index))); // <- use `Query` extractor
}

许可证:MIT

依赖项

~21–36MB
~609K SLoC