Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rambler-digital-solutions/actix-web-validator
Rust library for providing validation mechanism to actix-web with Validator crate.
https://github.com/rambler-digital-solutions/actix-web-validator
actix-web rust validation validator
Last synced: 5 days ago
JSON representation
Rust library for providing validation mechanism to actix-web with Validator crate.
- Host: GitHub
- URL: https://github.com/rambler-digital-solutions/actix-web-validator
- Owner: rambler-digital-solutions
- License: mit
- Created: 2020-02-12T09:32:29.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-11T09:09:25.000Z (4 months ago)
- Last Synced: 2024-10-13T19:47:25.279Z (about 1 month ago)
- Topics: actix-web, rust, validation, validator
- Language: Rust
- Homepage:
- Size: 133 KB
- Stars: 99
- Watchers: 10
- Forks: 26
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# actix-web-validator [![Latest Version]][crates.io] [![Documentation]][docs-rs] [![Coverage]][coveralls] [![Build Status]][travis]
[Latest Version]: https://img.shields.io/crates/v/actix-web-validator
[Documentation]: https://docs.rs/actix-web-validator/badge.svg
[docs-rs]: https://docs.rs/actix-web-validator/
[crates.io]: https://crates.io/crates/actix-web-validator
[Coverage]: https://coveralls.io/repos/github/rambler-digital-solutions/actix-web-validator/badge.svg?branch=master
[coveralls]: https://coveralls.io/github/rambler-digital-solutions/actix-web-validator?branch=master
[Build Status]: https://travis-ci.org/rambler-digital-solutions/actix-web-validator.svg?branch=master
[travis]: https://travis-ci.org/rambler-digital-solutions/actix-web-validator
[Validator crate]: https://crates.io/crates/validatorThis crate is a Rust library for providing validation mechanism to actix-web with [Validator crate].
Installation
============This crate works with Cargo and can be found on
[crates.io] with a `Cargo.toml` like:```toml
[dependencies]
actix-web-validator = "6.0.0"
validator = { version = "0.16", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
```## Supported extractors:
* `actix_web::web::Json`
* `actix_web::web::Query`
* `actix_web::web::Path`
* `actix_web::web::Form`
* `serde_qs::actix::QsQuery`### Supported `actix_web` versions:
* For actix-web-validator `0.*` supported version of actix-web is `1.*`
* For actix-web-validator `1.* ` supported version of actix-web is `2.*`
* For actix-web-validator `2.* ` supported version of actix-web is `3.*`
* For actix-web-validator `3+ ` supported version of actix-web is `4.*`### Example:
```rust
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) -> 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
}
```## License
actix-web-validator is licensed under MIT license ([LICENSE](LICENSE) or http://opensource.org/licenses/MIT)