Skip to content

关于 元字段定义

访问范围

需要多个访问范围—请参阅每个端点以了解访问范围要求。

需要访问受保护的客户数据。

元字段定义是 Genstore 平台的基础服务组件,提供灵活的业务元数据管理能力。通过元字段定义服务,业务系统可实现字段的动态扩展和数据值管理,确保业务模型的可扩展性。

核心功能

  • 元字段定义管理:实现元字段的创建、更新、删除和查询,支持业务域的字段模型扩展。

使用场景

  • 动态字段扩展:业务团队可通过元字段定义为已有模型增加新属性,实现业务模型的快速迭代。

元字段定义 对象

元字段定义业务对象。

属性

metafieldobject
- 收起属性
definitionNamestring
元字段的名称。
codestring
元字段的唯一标识,在同一个命名空间下唯一。
namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识 code,不同命名空间下可以创建相同字段标识 code。
descriptionstring
元字段的描述。
optionMapstring
元字段的扩展配置,用于存储业务方对字段定义的扩展信息,比如是否支持搜索。具体配置以 Map 格式存储。 Map 的 key 由业务方接入时确定。
fieldTypestring
元字段的类型,不同类型的元字段存储的元数据格式不同。枚举值:
* SingleLineText - 单行文本;
* MultiLineText - 多行文本;
* Integer - 整数;
* Decimal - 小数;
* MonthDay - 月日;
* Date - 日期(支持采用 ISO 8601 格式且不包含时区的日期值);
* DateTime - 日期和时间(支持采用 ISO 8601 格式的日期值和采用 UTC 时间的时间值);
* Weight - 重量;
* Size - 尺寸;
* Volume - 体积;
* Product - 商品;
* Customer - 客户;
* SKU - 商品规格;
* Collection - 商品系列;
* Page - 页面;
* File - 文件;
* Color - 颜色;
* Money - 金额;
* Url - url;
* Boolean - True 或 False。
multistring
元字段是否支持多值列表,支持多值列表的元字段控件输入时允许用户输入多个项,元字段数据将以 JSON Array 格式存储。
schemaRulestring
元字段的校验规则,可以限制元数据录入时的长度可输入范围等,为空时代表不校验。不同字段的校验规则不同,具体格式参考字段规则文档。
pinnedboolean
元字段Pin的状态,可以控制字段Pin在列表上。
isShowboolean
元字段展示状态,可以控制字段在定义列表以及业务数据页面展示。
bash
{
  "metafield": {
    "pinned": "true",
    "definitionName": "MyFieldName01",
    "code": "MyFieldCode1",
    "namespace": "AppleName",
    "description": "this is meta field description sample",
    "optionMap": "{"search":true}",
    "fieldType": "Weight",
    "multi": "false",
    "schemaRule": "{"min":{"value":2,"unit":"g"},"max":{"value":200,"unit":"kg"}}",
    "isShow": "true"
  }
}

POST 创建元字段定义

新增元字段定义。

访问范围

需要以下任意访问权限: write_metafields

接口

POST /api/202412/metafields/definitions/{domainName} 

请求参数

definitionNamestring
元字段的名称。
descriptionstring
元字段的描述。
namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识 code,不同命名空间下可以创建相同字段标识 code。
codestring
元字段的唯一标识,在同一个命名空间下唯一。
fieldTypestring
元字段的类型,不同类型的元字段存储的元数据格式不同。枚举值:
* SingleLineText - 单行文本;
* MultiLineText - 多行文本;
* Integer - 整数;
* Decimal - 小数;
* MonthDay - 月日;
* Date - 日期(支持采用 ISO 8601 格式且不包含时区的日期值);
* DateTime - 日期和时间(支持采用 ISO 8601 格式的日期值和采用 UTC 时间的时间值);
* Weight - 重量;
* Size - 尺寸;
* Volume - 体积;
* Product - 商品;
* Customer - 客户;
* SKU - 商品规格;
* Collection - 商品系列;
* Page - 页面;
* File - 文件;
* Color - 颜色;
* Money - 金额;
* Url - url;
* Boolean - True 或 False。
multiboolean
元字段是否支持多值列表,支持多值列表的元字段控件输入时允许用户输入多个项,元字段数据将以 JSON Array 格式存储。
schemaRuleobject
元字段的校验规则,可以限制元数据录入时的长度可输入范围等,为空时代表不校验。不同字段的校验规则不同,具体格式参考字段规则文档。
optionMapobject
元字段的扩展配置,用于存储业务方对字段定义的扩展信息,比如是否支持搜索。具体配置以 Map 格式存储。 Map 的 key 由业务方接入时确定。
pinnedboolean
元字段Pin的状态,可以控制字段Pin在列表上。
isShowboolean
元字段展示状态,可以控制字段在定义列表以及业务数据页面展示。

响应数据

metafieldobject
- 收起属性
definitionNamestring
元字段的名称。
descriptionstring
元字段的描述。
namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识 code,不同命名空间下可以创建相同字段标识 code。
codestring
元字段的唯一标识,在同一个命名空间下唯一。
fieldTypestring
元字段的类型,不同类型的元字段存储的元数据格式不同。枚举值:
* SingleLineText - 单行文本;
* MultiLineText - 多行文本;
* Integer - 整数;
* Decimal - 小数;
* MonthDay - 月日;
* Date - 日期(支持采用 ISO 8601 格式且不包含时区的日期值);
* DateTime - 日期和时间(支持采用 ISO 8601 格式的日期值和采用 UTC 时间的时间值);
* Weight - 重量;
* Size - 尺寸;
* Volume - 体积;
* Product - 商品;
* Customer - 客户;
* SKU - 商品规格;
* Collection - 商品系列;
* Page - 页面;
* File - 文件;
* Color - 颜色;
* Money - 金额;
* Url - url;
* Boolean - True 或 False。
multiboolean
元字段是否支持多值列表,支持多值列表的元字段控件输入时允许用户输入多个项,元字段数据将以 JSON Array 格式存储。
schemaRuleobject
元字段的校验规则,可以限制元数据录入时的长度可输入范围等,为空时代表不校验。不同字段的校验规则不同,具体格式参考字段规则文档。
optionMapobject
元字段的扩展配置,用于存储业务方对字段定义的扩展信息,比如是否支持搜索。具体配置以 Map 格式存储。 Map 的 key 由业务方接入时确定。
pinnedboolean
元字段Pin的状态,可以控制字段Pin在列表上。
isShowboolean
元字段展示状态,可以控制字段在定义列表以及业务数据页面展示。
bash
curl -X POST \ 
https://{shop}.genmystore.com/api/202412/metafields/definitions/{domainName}" \ 
-H "X-Genstore-Access-Token: {access_token}" \ 
-H "Content-Type: application/json" \ 
-d '{
	"pinned":"true",
	"definitionName":"MyFieldName01",
	"code":"MyFieldCode1",
	"namespace":"AppleName",
	"description":"this is meta field description sample",
	"optionMap":"{\"search\":true}",
	"fieldType":"Weight",
	"multi":"false",
	"schemaRule":"{\"min\":{\"value\":2,\"unit\":\"g\"},\"max\":{\"value\":200,\"unit\":\"kg\"}}",
	"isShow":"true"
}'
json
HTTP/1.1 200 OK
{
  "metafield": {
    "pinned": "true",
    "definitionName": "MyFieldName01",
    "code": "MyFieldCode1",
    "namespace": "AppleName",
    "description": "this is meta field description sample",
    "optionMap": "{\"search\":true}",
    "fieldType": "Weight",
    "multi": "false",
    "schemaRule": "{\"min\":{\"value\":2,\"unit\":\"g\"},\"max\":{\"value\":200,\"unit\":\"kg\"}}",
    "isShow": "true"
  }
}

PUT 更新元字段定义

更新元字段定义。

访问范围

需要以下任意访问权限: write_metafields

接口

PUT /api/202412/metafields/definitions/{domainName} 

请求参数

definitionNamestring
元字段的名称。
descriptionstring
元字段的描述。
namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识code,不同命名空间下可以创建相同字段标识code。
codestring
元字段的唯一标识,在同一个命名空间下唯一。
fieldTypestring
元字段的类型,不同类型的元字段存储的元数据格式不同。
multiboolean
元字段是否支持多值列表,支持多值列表的元字段控件输入时允许用户输入多个项,元字段数据将以JSON Array 格式存储。
schemaRuleobject
元字段的校验规则,可以限制元数据录入时的长度可输入范围等,为空时代表不校验。不同字段的校验规则不同,具体格式参考字段规则文档。
optionMapobject
元字段的扩展配置,用于存储业务方对字段定义的扩展信息,比如是否支持搜索。具体配置已Map 格式存储。 Map的key由业务方接入时确定。
pinnedboolean
元字段Pin的状态,可以控制字段Pin在列表上。
isShowboolean
元字段展示状态,可以控制字段在定义列表以及业务数据页面展示。

响应数据

metafieldobject
+ 展开属性
isShowboolean
元字段展示状态,可以控制字段在定义列表以及业务数据页面展示。
bash
curl -X PUT \ 
https://{shop}.genmystore.com/api/202412/metafields/definitions/{domainName}" \ 
-H "X-Genstore-Access-Token: {access_token}" \ 
-H "Content-Type: application/json" \ 
-d '{
	"pinned":"true",
	"definitionName":"MyFieldName01",
	"code":"MyFieldCode1",
	"namespace":"AppleName",
	"description":"this is meta field description sample",
	"optionMap":"{\"search\":true}",
	"fieldType":"Weight",
	"multi":"false",
	"schemaRule":"{\"min\":{\"value\":2,\"unit\":\"g\"},\"max\":{\"value\":200,\"unit\":\"kg\"}}",
	"isShow":"true"
}'
json
HTTP/1.1 200 OK
{
  "metafield": {
    "pinned": "true",
    "definitionName": "MyFieldName01",
    "code": "MyFieldCode1",
    "namespace": "AppleName",
    "description": "this is meta field description sample",
    "optionMap": "{\"search\":true}",
    "fieldType": "Weight",
    "multi": "false",
    "schemaRule": "{\"min\":{\"value\":2,\"unit\":\"g\"},\"max\":{\"value\":200,\"unit\":\"kg\"}}"
  },
  "isShow": "true"
}

DELETE 删除元字段定义

删除元字段定义。

访问范围

需要以下任意访问权限: write_metafields

接口

DELETE /api/202412/metafields/definitions/{domainName} 

请求参数

namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识code,不同命名空间下可以创建相同字段标识code。
codestring
元字段的唯一标识,在同一个命名空间下唯一。

响应数据

metafieldobject
- 收起属性
namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识code,不同命名空间下可以创建相同字段标识code。
codestring
元字段的唯一标识,在同一个命名空间下唯一。
bash
curl -X DELETE \ 
https://{shop}.genmystore.com/api/202412/metafields/definitions/{domainName}" \ 
-H "X-Genstore-Access-Token: {access_token}" \
json
HTTP/1.1 200 OK
{
  "metafield": {
    "code": "MyFieldCode1",
    "namespace": "AppleName"
  }
}

GET 获取元字段定义

获取单个元字段的定义。

访问范围

需要以下任意访问权限: read_metafields write_metafields

接口

GET /api/202412/metafields/definitions/detail/{domainName} 

请求参数

namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识code,不同命名空间下可以创建相同字段标识code。
codestring
元字段在命名空间下的唯一code

响应数据

metafieldobject
- 收起属性
namestring
元字段的名称。
descriptionstring
元字段的描述。
namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识code,不同命名空间下可以创建相同字段标识code。
codestring
元字段的唯一标识,在同一个命名空间下唯一。
fieldTypestring
元字段的类型,不同类型的元字段存储的元数据格式不同。枚举值:
* SingleLineText - 单行文本;
* MultiLineText - 多行文本;
* Integer - 整数;
* Decimal - 小数;
* MonthDay - 月日;
* Date - 日期(支持采用 ISO 8601 格式且不包含时区的日期值);
* DateTime - 日期和时间(支持采用 ISO 8601 格式的日期值和采用 UTC 时间的时间值);
* Weight - 重量;
* Size - 尺寸;
* Volume - 体积;
* Product - 商品;
* Customer - 客户;
* SKU - 商品规格;
* Collection - 商品系列;
* Page - 页面;
* File - 文件;
* Color - 颜色;
* Money - 金额;
* Url - url;
* Boolean - True 或 False。
multiboolean
元字段是否支持多值列表,支持多值列表的元字段控件输入时允许用户输入多个项,元字段数据将以JSON Array 格式存储。
schemaRuleobject
元字段的校验规则,可以限制元数据录入时的长度可输入范围等,为空时代表不校验。不同字段的校验规则不同,具体格式参考字段规则文档。
optionMapobject
元字段的扩展配置,用于存储业务方对字段定义的扩展信息,比如是否支持搜索。具体配置已Map 格式存储。 Map的key由业务方接入时确定。
pinnedboolean
元字段Pin的状态,可以控制字段Pin在列表上。
isShowboolean
元字段展示状态,可以控制字段在定义列表以及业务数据页面展示。
bash
curl -X GET \ 
https://{shop}.genmystore.com/api/202412/metafields/definitions/detail/{domainName}" \ 
-H "X-Genstore-Access-Token: {access_token}" \
json
HTTP/1.1 200 OK
{
  "metafield": {
    "pinned": "true",
    "code": "MyFieldCode1",
    "name": "MyFieldName01",
    "namespace": "AppleName",
    "description": "this is meta field description sample",
    "optionMap": "{\"search\":true}",
    "fieldType": "Weight",
    "multi": "false",
    "schemaRule": "{\"min\":{\"value\":2,\"unit\":\"g\"},\"max\":{\"value\":200,\"unit\":\"kg\"}}",
    "isShow": "true"
  }
}

GET 获取元字段定义列表

查询元字段定义。

访问范围

需要以下任意访问权限: read_metafields write_metafields

接口

GET /api/202412/metafields/definitions/{domainName} 

请求参数

namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识code,不同命名空间下可以创建相同字段标识code。
codesstring
元字段在命名空间下的唯一 code,如果要查询多个则用英文逗号隔开。
fieldTypestring
元字段的类型,不同类型的元字段存储的元数据格式不同。枚举值:
* SingleLineText - 单行文本;
* MultiLineText - 多行文本;
* Integer - 整数;
* Decimal - 小数;
* MonthDay - 月日;
* Date - 日期(支持采用 ISO 8601 格式且不包含时区的日期值);
* DateTime - 日期和时间(支持采用 ISO 8601 格式的日期值和采用 UTC 时间的时间值);
* Weight - 重量;
* Size - 尺寸;
* Volume - 体积;
* Product - 商品;
* Customer - 客户;
* SKU - 商品规格;
* Collection - 商品系列;
* Page - 页面;
* File - 文件;
* Color - 颜色;
* Money - 金额;
* Url - url;
* Boolean - True 或 False。
limitnumber
查询数量限制,默认 50,不能超过 250。
pageTokenstring
加密后的请求参数,用于上一页、下一页,直接取该字段解析访问。

响应数据

metafieldsarray
- 收起属性
definitionNamestring
元字段的名称。
descriptionstring
元字段的描述。
namespacestring
元字段的命名空间,业务可以根据命名空间隔离字段唯一标识code,不同命名空间下可以创建相同字段标识code。
codestring
元字段的唯一标识,在同一个命名空间下唯一。
fieldTypestring
元字段的类型,不同类型的元字段存储的元数据格式不同。枚举值:
* SingleLineText - 单行文本;
* MultiLineText - 多行文本;
* Integer - 整数;
* Decimal - 小数;
* MonthDay - 月日;
* Date - 日期(支持采用 ISO 8601 格式且不包含时区的日期值);
* DateTime - 日期和时间(支持采用 ISO 8601 格式的日期值和采用 UTC 时间的时间值);
* Weight - 重量;
* Size - 尺寸;
* Volume - 体积;
* Product - 商品;
* Customer - 客户;
* SKU - 商品规格;
* Collection - 商品系列;
* Page - 页面;
* File - 文件;
* Color - 颜色;
* Money - 金额;
* Url - url;
* Boolean - True 或 False。
multiboolean
元字段是否支持多值列表,支持多值列表的元字段控件输入时允许用户输入多个项,元字段数据将以JSON Array 格式存储。
schemaRuleobject
元字段的校验规则,可以限制元数据录入时的长度可输入范围等,为空时代表不校验。不同字段的校验规则不同,具体格式参考字段规则文档。
optionMapobject
元字段的扩展配置,用于存储业务方对字段定义的扩展信息,比如是否支持搜索。具体配置已Map 格式存储。 Map的key由业务方接入时确定。
pinnedboolean
元字段Pin的状态,可以控制字段Pin在列表上。
isShowboolean
元字段展示状态,可以控制字段在定义列表以及业务数据页面展示。
bash
curl -X GET \ 
https://{shop}.genmystore.com/api/202412/metafields/definitions/{domainName}" \ 
-H "X-Genstore-Access-Token: {access_token}" \
json
HTTP/1.1 200 OK
{
  "metafields": [
    {
      "pinned": "true",
      "definitionName": "MyFieldName01",
      "code": "MyFieldCode1",
      "namespace": "AppleName",
      "description": "this is meta field description sample",
      "optionMap": "{\"search\":true}",
      "fieldType": "Weight",
      "multi": "false",
      "schemaRule": "{\"min\":{\"value\":2,\"unit\":\"g\"},\"max\":{\"value\":200,\"unit\":\"kg\"}}",
      "isShow": "true"
    }
  ]
}