30 个版本 (7 个重大更新)
0.9.0 | 2024年7月10日 |
---|---|
0.8.9 | 2024年5月30日 |
0.6.0 | 2024年3月8日 |
0.4.8 | 2023年9月4日 |
0.3.4 | 2022年10月18日 |
#376 in Web 编程
每月下载量:148
495KB
1.5K SLoC
shopify_api
一个符合人体工程学的 Shopify API 客户端,适用于 Rust。
- 支持 GraphQL API,具有自动数据反序列化功能
- 变更日志
示例
以下异步示例使用 Tokio 并启用了一些可选功能,因此您的 Cargo.toml
可能如下所示
[dependencies]
shopify_api = "0.8"
tokio = { version = "1", features = ["full"] }
然后是代码
use shopify_api::*;
use shopify_api::utils::ReadJsonTreeSteps;
use serde::{Deserialize};
#[derive(Deserialize)]
struct Shop {
name: String,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let shopify = Shopify::new("hello", "world", String::from("2024-04"), None);
let graphql_query = r#"
query {
shop {
name
}
}"#;
let variables = serde_json::json!({});
let json_finder = vec![ReadJsonTreeSteps::Key("data"), ReadJsonTreeSteps::Key("shop")];
let shop: Shop = shopify.graphql_query(graphql_query, &variables, &json_finder).await.unwrap();
Ok(())
}
或者使用新的 GraphQL 客户端!
[dependencies]
shopify_api = "0.89"
tokio = { version = "1", features = ["full"] }
graphql_client = "0.14.0"
query GetShop {
shop {
name
}
}
use shopify_api::*;
use graphql_client::GraphQLQuery;
#[derive(GraphQLQuery)]
#[graphql(
schema_path = "./graphql.schema.json",
query_path = "graphql/getShop.graphql",
response_derives = "Debug"
)]
struct GetShop;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let shopify = Shopify::new("hello", "world", String::from("2024-04"), None);
let shop_info = connector
.shopify
.post_graphql::<GetShop>(get_shop::Variables {})
.await;
Ok(())
}
下载 GraphQL 模式
您可以从这个仓库下载一个
或者使用以下命令从 Shopify GraphQL API 下载:该命令
[!WARNING] 有时您会因为缺少结构体而导致 GraphQLQuery derive 出现错误,通常您可以通过从 类型导入 中导入缺少的结构体来修复它,或者您可以创建一个与缺少的结构体同名的新结构体,然后 derive 将会工作。
许可证
根据 MIT 许可协议授权(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖关系
约 7-22MB
约 283K SLoC