2 个版本
0.1.1 | 2019年11月25日 |
---|---|
0.1.0 | 2019年11月25日 |
#9 in #consuming
9KB
92 行
Sanity RS
使用 Rust 消费 https://sanity.io 的开源客户端,基于 reqwest
。
这个项目的目标是提供一个相对底层的包装器,用于消费由 Sanity 提供的 API。第一个目标是确保所有基础功能都覆盖,以便运行裸 GROQ 查询字符串,然后我想要添加对某种 ORM 的支持来运行查询(如果你知道任何实现此功能的简单方法,请告诉我)。
扩展目标是添加一个高级的 GraphQL 消费者,使 Sanity 操作变得简单,但由于已经有其他针对 Rust 的 GraphQL 项目,因此这不是一个高优先级的项目 :)。
此项目处于 alpha 阶段,因此功能非常有限。
入门
将 sanity
包添加到您的依赖项中
[dependencies]
sanity = "0.1.0"
或直接通过 github
[dependencies]
sanity = { git = "https://github.com/DukeFerdinand/sanity.rs" }
然后像包含任何其他外部包一样包含它
// main.rs or wherever
...
extern crate sanity;
...
fn main {
...
}
用法
截至现在(v0.1.0
),仅支持 get
请求。
GET
请求
extern crate sanity;
use sanity::helpers::get_json;
fn main() {
// Ideally you would pull these values from an env of some sort
// PLEASE do not use bare strings in your project
let mut sn = sanity::create(
"proj_id", // Sanity project ID to use
"data_set", // Data set to query. i.e. "development"
"Long_string_for_token", // Bearer token
false, // Use prod cdn or not
);
let res = sn.get(&String::from("*[_type == 'recipe']"));
if res.is_ok() {
println!("{:?}", get_json(res.unwrap()));
}
}
贡献
我承认我对 Rust 比较新手,所以如果您看到任何需要更改的内容或任何希望添加的内容,请 在 github 问题上 提出 feature request :)。
我愿意接受任何和所有的 PR,只要它们符合项目并包含良好的代码!
依赖项
~20MB
~434K SLoC