能否不定义查询字段直接执行GraphQL mutation实现Shopify商品迁移
Shopify GraphQL Admin API 强制要求显式指定 mutation 的返回字段,没有直接传入全量JSON就自动生成查询的语法,但你完全不需要手动逐个定义所有字段,以下几个方案可以大幅降低工作量:
- 自动生成查询字段
写一个简单的递归函数,遍历你已经拉取的商品JSON结构,自动拼接出对应嵌套层级的查询字符串。注意提前过滤掉只读字段(比如你数据里的id、available、review_count等创建接口不接收的字段),避免生成无效字段导致请求报错。 - 用代码生成工具生成查询模板
借助开源的GraphQL代码生成工具,拉取Shopify官方的GraphQL Schema,配置后可以根据ProductInput类型自动生成完整的productCreatemutation 查询模板,后续仅需传入预处理好的变量即可,全程不需要手动编写查询内容。 - 切换为REST Admin API实现
如果你没有必须使用GraphQL的特殊需求,直接用Shopify REST Admin API的商品创建接口会更适配你的场景:REST接口不需要定义返回字段,你只需要将完成字段映射、过滤了只读属性的JSON对象直接POST到对应接口即可,完全省去查询定义的工作。
额外提醒
你从旧接口拉取的JSON字段名和Shopify创建接口要求的字段名存在差异,比如旧数据的body_html对应创建接口的descriptionHtml,inventory_quantity对应inventoryQuantities等,这层字段映射的逻辑无法省略,需要你提前做一次转换。
内容的提问来源于stack exchange,提问作者BugHunterUK
相关产品推荐
相关产品推荐

