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
每月下载量 2,396
10KB
106 行代码(不包括注释)
Shopify Functions Rust Crate
一个 crate,帮助开发者构建 Shopify Functions。
依赖项
-
确保你的依赖项中包含
graphql_clientcargo add graphql_client@0.14.0
用法
generate_types宏允许你根据你的 输入查询 生成结构体。它还将根据提供的模式生成当前函数 API 的输出/响应类型。shopify_function属性宏将下面的函数标记为 Shopify 函数的入口点。它为您管理函数的STDIN输入解析和STDOUT输出序列化。run_function_with_input函数是一个单元测试实用工具,允许你根据给定的 JSON 输入字符串快速添加新的测试。
请参阅 示例 了解用法细节,或使用以下指南将现有的基于 Rust 的函数进行转换。
将现有函数更新为使用 shopify_function
-
cargo添加 shopify_function -
cargo添加 graphql_client@0.14.0 -
删除
src/api.rs。 -
在
main.rs中-
为
shopify_function添加导入。use shopify_function::prelude::*; use shopify_function::Result; -
移除对
mod api的引用。 -
在导入下面添加类型生成。
generate_types!(query_path = "./input.graphql", schema_path = "./schema.graphql"); -
完全删除
main函数。 -
将函数
function赋值给shopify_function宏,并更改其返回类型。#[shopify_function] fn function(input: input::ResponseData) -> Result<output::FunctionResult> { -
更新函数中使用的类型和字段到新的自动生成的结构体。例如
旧版 新版本 输入::Input输入::ResponseData输入::Metafield输入::InputDiscountNodeMetafield输入::DiscountNode输入::InputDiscountNodeFunctionResult输出::FunctionResultDiscountApplicationStrategy::First输出::DiscountApplicationStrategy::FIRST
-
-
将
.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