跳到主要内容
版本:Next

Shopify

Shopify 数据源连接器

描述​

用于从 Shopify Admin REST API 读取数据。它使用 Shopify Admin API 的访问令牌进行认证(通过 X-Shopify-Access-Token 请求头发送),并将某个资源接口(如 orders、products、customers)读取为 SeaTunnel 的行数据。

主要特性​

选项​

名称类型是否必填默认值
urlString是-
access_tokenString是-
methodString否get
headersMap否-
schemaConfig否-
formatString否text
paramsMap否-
bodyString否-
json_fieldConfig否-
content_fieldString否-
poll_interval_millisint否-
retryint否-
retry_backoff_multiplier_msint否100
retry_backoff_max_msint否10000
json_filed_missed_return_nullboolean否false
enable_multi_linesboolean否false
common-optionsconfig否-

pageing 出现在选项规则中,但本连接器会在启动时拒绝它 —— 见分页。

url [String]​

要读取的 Shopify Admin API 接口地址,例如 https://your-store.myshopify.com/admin/api/2024-01/products.json。

access_token [String]​

Shopify Admin API 的访问令牌,通过 X-Shopify-Access-Token 请求头发送。获取方式请参考 Shopify 认证文档。

method [String]​

http 请求方法,仅支持 GET、POST 方法。

headers [Map]​

额外的 HTTP 请求头。连接器已经会根据 access_token 设置 X-Shopify-Access-Token,并设置 Accept: application/json,因此这里只需要配置这两者之外的请求头;在这里设置 X-Shopify-Access-Token 会被 access_token 覆盖。

schema [Config]​

数据的结构,包括字段名称和字段类型。更多详情请参考 Schema Feature。

format [String]​

上游数据的格式,目前仅支持 json 和 text,默认 text。

params [Map]​

http 请求参数。

json_field [Config]​

该参数用于配置 schema,因此必须与 schema 一起使用。它将响应中的 JSON 路径映射到 schema 字段。详情和示例请参考 Http source 连接器。

content_field [String]​

该参数可以在映射为行之前,提取 JSON 响应中的某个子部分(例如顶层键 products 或 orders 下的数组)。详情和示例请参考 Http source 连接器。

common options​

数据源插件通用参数,详情请参考 Source Common Options。

分页​

不支持。 pageing 继承自 HTTP source 的选项规则,但本连接器不会把它传给 reader;若照单 接受,作业只会读取第一次响应的数据却仍报告成功。因此配置该选项会在启动时以 HTTP-03 失败, 而不是静默返回不完整的数据。

仅仅把继承来的分页参数传下去也解决不了问题:共享实现是用 JsonPath 从响应体中读取下一个游标, 而 Admin REST API 把游标放在 Link 响应头里。要真正支持,需要让 connector-http-base 能够从响应头读取游标。

示例​

source {
Shopify {
url = "https://your-store.myshopify.com/admin/api/2024-01/products.json"
access_token = "${SHOPIFY_ACCESS_TOKEN}"
method = "GET"
format = "json"
content_field = "$.products.*"
schema = {
fields {
id = string
title = string
vendor = string
product_type = string
created_at = string
updated_at = string
}
}
}
}

${SHOPIFY_ACCESS_TOKEN} 是 SeaTunnel 的配置变量,不是环境变量 —— 只有在命令行传入对应的值时才会被替换:

./bin/seatunnel.sh -c your_app.conf -i SHOPIFY_ACCESS_TOKEN=shpat_xxx

若不传 -i,字面量 ${SHOPIFY_ACCESS_TOKEN} 会被当作令牌发送,Shopify 将返回 401。参见变量配置。

变更日志​

Change Log
ChangeCommitVersion