大数跨境
0
0

如何调用 GraphQL Admin API 查询非Rest API 可以查询到的数据

如何调用 GraphQL Admin API 查询非Rest API 可以查询到的数据 Shopify 主题开发
2024-02-10
335
导读:这篇文章适用于希望了解如何在 Shopify Admin API 上下文中使用 GraphQL 的基础知识的开

Shopify Admin API 中使用 GraphQL 的基础知识

适用于希望掌握 GraphQL 数据查询与写入操作的开发人员

本文介绍在 Shopify Admin API 中如何使用 GraphQL 查询和修改存储数据,主要通过 GraphiQL 工具进行演示,并提供 curl 和 Postman 等客户端实现方法。

GraphiQL 可用于以下数据项的读写:

  • analytics
  • apps
  • channels
  • checkouts
  • customers
  • discounts
  • markets
  • products
  • themes
  • shipping

学习重点包括:

  1. 如何使用基本的 GraphQL 数据查询
  2. 如何使用 GraphQL 的数据写入功能
  3. 如何利用变量进行查询
  4. 如何使用 GraphiQL、curl 和 Postman 实现数据查询与写入

完成本文实践需准备以下环境:

  • 一个 Shopify Partner 帐户
  • 一个带有演示产品的开发商店

安装 GraphiQL

GraphiQL 是由 GraphQL 基金会推出的开源 Web 工具,支持自动补全并执行 GraphQL 查询。Shopify 提供了专为管理员 API 定制的应用版本,可直接安装至 Shopify 商店中,具备内置身份验证功能,简化测试流程。

建议将应用固定到导航菜单以方便后续访问。

生成第一个查询

以下是针对 Shopify 管理员 API 运行的第一个 GraphQL 查询示例:

query {
  shop {
    name
  }
}

GraphQL 要求指定返回字段,在本例中我们仅获取了 name 字段。

要运行查询,请点击 GraphiQL 左上角的“播放”按钮,结果将显示为 JSON 格式。

你可以扩展查询以获取更多信息,例如:

query {
  shop {
    name
    contactEmail
    url
  }
}

提示:使用 CTRL+Space 键盘快捷键查看可用字段列表。

扩展查询

GraphQL 支持从链接对象中获取深度嵌套的数据,显著降低 REST API 所需的多次调用次数。

查询产品列表

以查询产品为例,需要注意 products 返回的是 ProductConnection 类型而非普通对象列表,该类型封装了额外的分页逻辑。

示例:

query {
  products(first: 5) {
    edges {
      node {
        id
        title
      }
    }
  }
}

查询参数

你还可以结合参数筛选数据:

query {
  products(first: 5, query: "product_type:top") {
    edges {
      node {
        id
        title
      }
    }
  }
}

以上示例返回最多 5 个类型为 top 的产品。

命名查询与变量

为便于调试,可以定义带变量的命名查询,例如:

query topProducts($numberOfProducts: Int!, $queryParams: String) {
  products(first: $numberOfProducts, query: $queryParams) {
    edges {
      node {
        id
        title
      }
    }
  }
}

在 GraphiQL 中通过“查询变量”面板赋值。

为产品创建元字段

GraphQL 也支持数据写入操作,以下是一个向产品添加 Metafield 的示例:

mutation {
  productUpdate(input: {id: "gid://shopify/Product/123456", metafields: [{namespace: "custom", key: "size", value: "large", valueType: STRING}]) {
    product {
      metafields(first: 10) {
        edges {
          node {
            namespace
            key
            value
          }
        }
      }
    }
  }
}

使用 curl

可以通过命令行工具(如 curl)执行 GraphQL 操作,如下为示例模板:

curl -X POST \
  https://{your_store_name}.myshopify.com/admin/api/{latest_api_version}/graphql.json \
  -H 'Content-Type: application/graphql' \
  -H 'X-Shopify-Access-Token: {access_token}' \
  -d '{
       "query": "{ shop { name } }"
     }'

使用 Postman

在 Postman 中设置请求时,请添加以下头部:

Content-Type: application/json
X-Shopify-Access-Token: [your_access_token]

在请求体中选择 “GraphQL” 并粘贴你的查询语句。

【声明】内容源于网络
0
0
Shopify 主题开发
分享独立站的实操经验与教训,也许对您运营 Shopify 有启发。阿飞,专注专研 Shopify 跨境电商方法。
内容 67
粉丝 0
Shopify 主题开发 分享独立站的实操经验与教训,也许对您运营 Shopify 有启发。阿飞,专注专研 Shopify 跨境电商方法。
总阅读6.5k
粉丝0
内容67