Crates.io | actix-web-jsonschema |
lib.rs | actix-web-jsonschema |
version | 1.1.2 |
source | src |
created_at | 2022-11-10 13:27:43.58919 |
updated_at | 2023-05-02 19:42:45.600081 |
description | JsonSchema Validation Extractor for Actix Web. |
homepage | |
repository | https://github.com/yassun4dev/actix-web-jsonschema.git |
max_upload_size | |
id | 711839 |
size | 25,948 |
This crate is a Rust library for providing validation mechanism to actix-web with jsonschema crate.
More information about this crate can be found in the crate documentation.
This crate works with Cargo and can be found on crates.io with a Cargo.toml like:
[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"] }
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
}
License: MIT