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 编程

Download history 148/week @ 2024-04-16 733/week @ 2024-04-23 146/week @ 2024-04-30 469/week @ 2024-05-14 185/week @ 2024-05-21 200/week @ 2024-05-28 14/week @ 2024-06-04 51/week @ 2024-06-11 147/week @ 2024-06-18 21/week @ 2024-06-25 8/week @ 2024-07-02 129/week @ 2024-07-09 6/week @ 2024-07-16 5/week @ 2024-07-23

每月下载量:148

MIT 许可协议

495KB
1.5K SLoC

shopify_api

crates.io Documentation MIT/Apache-2 licensed CI Issues

一个符合人体工程学的 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-MIThttp://opensource.org/licenses/MIT

依赖关系

约 7-22MB
约 283K SLoC