13 个版本 (7 个破坏性更新)

0.8.0 2024年5月8日
0.7.0 2024年3月8日
0.5.0 2023年11月30日
0.2.5 2023年5月30日
0.2.3 2022年11月8日

Rust 模式 中排名 190

Download history 545/week @ 2024-05-03 708/week @ 2024-05-10 539/week @ 2024-05-17 547/week @ 2024-05-24 637/week @ 2024-05-31 613/week @ 2024-06-07 691/week @ 2024-06-14 466/week @ 2024-06-21 708/week @ 2024-06-28 576/week @ 2024-07-05 606/week @ 2024-07-12 650/week @ 2024-07-19 567/week @ 2024-07-26 585/week @ 2024-08-02 607/week @ 2024-08-09 489/week @ 2024-08-16

每月下载量 2,396

MIT 许可证 MIT

10KB
106 行代码(不包括注释)

Shopify Functions Rust Crate

一个 crate,帮助开发者构建 Shopify Functions

依赖项

用法

  • generate_types 宏允许你根据你的 输入查询 生成结构体。它还将根据提供的模式生成当前函数 API 的输出/响应类型。
  • shopify_function 属性宏将下面的函数标记为 Shopify 函数的入口点。它为您管理函数的 STDIN 输入解析和 STDOUT 输出序列化。
  • run_function_with_input 函数是一个单元测试实用工具,允许你根据给定的 JSON 输入字符串快速添加新的测试。

请参阅 示例 了解用法细节,或使用以下指南将现有的基于 Rust 的函数进行转换。

将现有函数更新为使用 shopify_function

  1. cargo添加 shopify_function

  2. cargo添加 [email protected]

  3. 删除 src/api.rs

  4. main.rs

    1. shopify_function 添加导入。

      use shopify_function::prelude::*;
      use shopify_function::Result;
      
    2. 移除对 mod api 的引用。

    3. 在导入下面添加类型生成。

      generate_types!(query_path = "./input.graphql", schema_path = "./schema.graphql");
      
    4. 完全删除 main 函数。

    5. 将函数 function 赋值给 shopify_function 宏,并更改其返回类型。

      #[shopify_function]
      fn function(input: input::ResponseData) -> Result<output::FunctionResult> {
      
    6. 更新函数中使用的类型和字段到新的自动生成的结构体。例如

      旧版 新版本
      输入::Input 输入::ResponseData
      输入::Metafield 输入::InputDiscountNodeMetafield
      输入::DiscountNode 输入::InputDiscountNode
      FunctionResult 输出::FunctionResult
      DiscountApplicationStrategy::First 输出::DiscountApplicationStrategy::FIRST
  5. .output.graphql 添加到您的 .gitignore

查看生成的类型

要预览由 generate_types 宏生成的类型,请使用 cargo doc 命令。

cargo doc --open

您还可以使用 cargo-expand crate 来查看生成的源代码,或使用 rust-analyzer VSCode 扩展来获得 Rust 和生成的类型的 智能感知


许可证 Apache-2.0

依赖项

~2.6–3.5MB
~75K SLoC