2021-03-31接口变动说明
1. 接口变动简介
- Webhook
- 2021-03-31 00:00:00 后创建的 Webhook 在推送数据时,数据结构中新增子表单数据 ID;
- 2021-03-31 00:00:00 前创建的 Webhook 推送的数据不发生变化(不过后续也有计划对这部分 Webhook 进行改造,请各位用户尽早调整)
- API
- API 查询单条数据接口新增 v2 版本,v2 版本返回数据新增子表单数据 ID
- API 查询多条数据接口新增 v2 版本,v2 版本返回数据新增子表单数据 ID
- API 新建单条数据接口新增 v3 版本,v3 版本返回数据新增子表单数据 ID
- API 修改单条数据接口新增 v3 版本,v3 版本请求数据新增子表单数据 ID,返回数据也新增子表单数据 ID
2. Webhook变动详细说明
本次更新后,每个子表单数据将添加“唯一性 ID”,届时,2021-03-31 00:00:00 后创建的 Webhook 在推送数据时,数据结构中新增子表单数据 ID,结构如下:
{
"_id": "605b5f68255d4845a73d3c0a", // <= 数据 ID
"_widget_1616600963783": "单行文本",
"_widget_1616600980550": [{
"_id": "605b5fa6255d4845a73d3c0b", // <= 新增加的子表单数据 ID
"_widget_1616601008197": "子表单内的单行文本字段值1"
}, {
"_id": "605b5fdc255d4845a73d3c0c", // <= 新增加的子表单数据 ID
"_widget_1616601008197": "子表单内的单行文本字段值2"
}]
}
2021-03-31 00:00:00 前创建的 Webhook 推送的数据暂时不发生变化,不过后续也有计划对这部分 Webhook 进行改造,请各位用户尽早调整!
3. API变动详细说明
API 接口的变动涉及到如下接口,未提及的接口不发生变动。
3.1 查询单条数据接口(/api/v2/app/{app_id}/entry/{entry_id}/data_retrieve)
- 新增 v2 接口
- v2 接口的请求参数不发生变化,即不支持仅查询子表单数据。
- v2 接口的返回数据新增子表单数据 ID,返回的子表单数据结构与前述 Webhook 子表单数据结构相同。
- v1 接口不发生变化
3.2 查询多条数据接口(/api/v2/app/{app_id}/entry/{entry_id}/data)
- 新增 v2 接口
- v2 接口的请求参数不发生变化。
- v2 接口的返回数据新增子表单数据 ID,返回的子表单数据结构与前述 Webhook 子表单数据结构相同。
- v1 接口不发生变化
3.3 新建单条数据接口(/api/v3/app/{app_id}/entry/{entry_id}/data_create)
- 新增 v3 接口:
- v3 接口的请求参数不发生变化,无需传入子表单行 ID,系统自动生成。
- v3 接口的返回数据新增子表单数据 ID,返回的子表单数据结构与前述 Webhook 子表单数据结构相同。
- v1、v2 接口不发生变化
3.4 修改单条数据(/api/v3/app/{app_id}/entry/{entry_id}/data_update)
- 新增 v3 接口:
- v3 接口的返回数据新增子表单数据 ID,返回的子表单数据结构与前述 Webhook 子表单数据结构相同。
- v3 接口的请求参数新增子表单数据 ID,新增后请求参数如下所示:
{
"data_id": "605b5f68255d4845a73d3c0a", // <= 数据 ID
"data": {
"_widget_1616600963783": {
"value": "单行文本修改"
},
"_widget_1616600980550": {
"value": [{
"_id": {
"value": "605b5fa6255d4845a73d3c0b" // <= 新增加需要传递的子表单数据 ID,
},
"_widget_1616601008197": {
"value": "子表单内的单行文本字段值1修改"
}
}, {
"_id": {
"value": "605b5fdc255d4845a73d3c0c" // <= 新增加需要传递的子表单数据 ID
},
"_widget_1616601008197": {
"value": "子表单内的单行文本字段值2修改"
}
}]
},
//... 其余参数
}
}
注意事项:
(1)如果调用修改单条数据 v3 接口时未传递“子表单数据 ID”或者传递了错误的“子表单数据 ID”,每次调用会清空请求的那条数据中原本的子表单数据,填入新请求的子表单数据,并给未传递“子表单数据 ID”或传递“子表单数据 ID”错误的子表单数据生成新的子表单数据 ID,传递正确的则维持原本的“子表单数据ID”不变(即重置未传递或传递错误的“子表单数据 ID”,调用一次重置一次),同时,还会导致在数据管理的数据日志中记录“子表单变更”,即使子表单内容没有发生过任何变化。
(2)修改单条数据 v3 接口仍然不支持按照“子表单数据 ID”只修改子表单对应行的数据,必须整体请求和修改,这一点与原本修改单条数据接口的逻辑一致(如子表单中原本有 3 条数据,请求参数中只写了 2 条数据,即使这2条的“子表单行 ID”传递正确,修改后的子表单数据也只有 2 条)
如果不能理解第(1)条注意事项,可以参考下方示例:
原本的子表单中有 3 行数据,结构如下:
{
"_id": "605b5f68255d4845a73d3c0a", // <= 数据 ID
"_widget_1616600963783": "单行文本",
"_widget_1616600980550": [{
"_id": "605b5fa6255d4845a73d3c0b", // <= 子表单数据ID
"_widget_1616601008197": "子表单内的单行文本字段值1"
}, {
"_id": "605b5fdc255d4845a73d3c0c", // <= 子表单数据ID
"_widget_1616601008197": "子表单内的单行文本字段值2"
}, {
"_id": "605b5fdc255d4845a73d3c0d", // <= 子表单数据ID
"_widget_1616601008197": "子表单内的单行文本字段值3"
}]
}
假设在调用修改单条数据 v3 接口的过程中有一个子表单数据 ID 传递错误,有一个未传递,有一个传递正确,请求参数如下:
{
"data_id": "605b5f68255d4845a73d3c0a", // <= 数据 ID
"data": {
"_widget_1616600963783": {
"value": "单行文本修改"
},
"_widget_1616600980550": {
"value": [{
// <= 未传递子表单数据ID
"_widget_1616601008197": {
"value": "子表单内的单行文本字段值1修改"
}
}, {
"_id": {
"value": "jiandaoyun" // <= 传递了错误的子表单数据ID
},
"_widget_1616601008197": {
"value": "子表单内的单行文本字段值2修改"
}
}, {
"_id": {
"value": "605b5fdc255d4845a73d3c0d" // <= 传递了正确的子表单数据ID
},
"_widget_1616601008197": {
"value": "子表单内的单行文本字段值3修改"
}
}]
},
//... 其余参数
}
}
那么修改之后的数据结构如下,子表单中原本的第 1、2 行的数据 ID 发生变化:
{
"_id": "605b5f68255d4845a73d3c0a", // <= 数据 ID
"_widget_1616600963783": "单行文本",
"_widget_1616600980550": [{
"_id": "605b5fa6255d4845a73d3c0e", // <= 新的子表单数据ID
"_widget_1616601008197": "子表单内的单行文本字段值1修改"
}, {
"_id": "605b5fdc255d4845a73d3c0f", // <= 新的子表单数据ID
"_widget_1616601008197": "子表单内的单行文本字段值2修改"
}, {
"_id": "605b5fdc255d4845a73d3c0d", // <= 子表单数据ID不变
"_widget_1616601008197": "子表单内的单行文本字段值3修改"
}]
}
- v1、v2 接口不发生变化