2 个版本
0.1.2 |
|
---|---|
0.1.1 | 2020 年 2 月 3 日 |
0.1.0 | 2020 年 2 月 3 日 |
#895 in HTTP 服务器
13KB
205 行
graphql_depth_limit
受 graphql_depth_limit 启发的 Rust 中 GraphQL 深度限制验证
将以下内容添加到您的 Cargo.toml
[dependencies]
graphql_depth_limit = "0.1.1"
并将其添加到您的 crate 根目录中(如果您使用的是 Rust 2015)
extern crate graphql_depth_limit;
以下是一个验证 GraphQL 查询的简单示例
use graphql_depth_limit::QueryDepthAnalyzer;
fn main() {
let query = r#"
query {
a {
b {
c
}
}
}
"#;
let depth = match QueryDepthAnalyzer::new(query, vec![], |_a, _b| true) {
Ok(validator) => validator.verify(5),
Err(val) => Err(DepthLimitError::Parse(val))
};
asssert_eq!(depth.ok()?, 3);
}
lib.rs
:
GraphQL 查询深度分析的实用工具
graphql_depth_limit 提供实用工具,以便轻松识别可能的恶意查询(深度高)。
快速入门
示例
use graphql_depth_limit::QueryDepthAnalyzer;
let query = r#"
query {
hello {
world
}
}
"#;
let analyzer = QueryDepthAnalyzer::new(query, vec![], |_a, _b| true).unwrap();
let verify_result = analyzer.verify(5);
依赖项
~1.5MB
~27K SLoC