27个版本
0.2.5 | 2024年2月15日 |
---|---|
0.2.3 | 2024年1月29日 |
0.2.2 | 2023年2月13日 |
0.2.1 | 2022年12月5日 |
0.0.9 | 2021年12月28日 |
#82 在 HTTP服务器
4,114 每月下载量
495KB
13K SLoC
graphql-tools
(Rust)
注意:此crate仍在开发中(请参阅以下路线图)
graphql_tools
crate实现了Rust库中围绕GraphQL的工具。大多数工具基于在graphql_parser
crate中实现的trait
和struct
此库的目标是创建一个具有类似/改进API的通用工具层,类似于/improved的graphql-js
参考实现和graphql-tools
从JS/TS生态系统中。
入门
将graphql-tools
作为项目依赖项添加到您的Cargo.toml
文件中,如下所示
[dependencies]
graphql-tools = "..."
或者,如果您正在使用cargo-edit
cargo add graphql-tools
路线图和进度
- 更好的文档
- GraphQL模式的AST访问者(
graphql_parser::schema::Document
) - GraphQL操作的AST访问者(
graphql_parser::operation::Document
) - 带TypeInfo的AST访问者
- AST工具(进行中)
-
结构体
扩展 - GraphQL 验证引擎
- 验证规则
- GraphQL 操作转换器
如果您有想法/缺少的功能,请随时提交问题/开始 GitHub 讨论!
验证规则
此比较基于
graphql-js
参考实现。
- 可执行定义(实际上不需要)
- 唯一操作名称
- 独立的匿名操作
- 单个字段订阅
- 已知类型名称
- 组合类型上的片段
- 变量是输入类型
- 叶字段选择
- 正确类型上的字段
- 唯一片段名称
- 已知片段名称
- 无未使用片段
- 可能的片段展开
- 无片段循环
- 唯一变量名称
- 无未定义变量
- 无未使用变量
- 已知指令
- 每个位置的唯一指令
- 已知参数名称
- 唯一参数名称
- 正确类型的值
- 提供必需的参数
- 允许位置中的变量
- 重叠字段可合并
- 唯一输入字段名称(由 https://github.com/graphql-rust/graphql-parser/issues/59 阻挡)
依赖关系
~2.2–3MB
~67K SLoC