版本管理接口(行级)
引言
行版本管理相关的接口,在管理台外部调用的时候需要配合鉴权密钥authId/authKey
所有接口都需要带下述query
参数,接口专属参数会详细说明
query id | 说明 |
---|---|
appid | 项目id |
schemaid | 表id |
authid | 鉴权ID |
authkey | 鉴权key |
行版本相关接口
查询指定发布状态的数据
+ GET
/lv/status/:status
请求参数:
status
:发布状态,0 全部,1 线上一致(已发布) 2 线上不一致(未发布或回滚)
列出单行数据的历史版本
+ GET
/lv/list/:objectId
请求参数:
objectId
:数据主键
列出原表的删除记录
+ GET
/lv/record
回滚指定的版本
+ GET
/lv/rollback/:versionId
请求参数:
versionId
(路径参数):string,版本ID
检查指定数据列表的发布状态
+ POST
/lv/check
curl -X GET "http://{HOST}/api/lv/check?appid=vqq_com&schemaid=qq_icon"
-H "Content-Type: text/plain; charset=UTF-8"
-H "Staffname: userId"
-d '{"ids": ["id1", "id2"]}'
获取正式表数据列表
+ POST/GET
/lv/prod
如果请求query太长可以通过body携带
发布单条数据
+ POST
/lv/publish/:objectId
请求参数:
objectId
:数据主键
curl -X GET "http://{HOST}/api/lv/publish?appid=vqq_com&schemaid=qq_icon"
-H "Content-Type: text/plain; charset=UTF-8"
-H "Staffname: 操作人userId"
-d '{"desc": "可以携带desc"}'
发布被删除数据
+ POST
/lv/record/publish
body:
{
"desc": "",
"actionId": "", // 从 /lv/record 接口中返回
"grayId": "",
}
灰度相关接口
获取灰度环境的数据
+ GET/POST
/lv/gray/:grayId
将数据发布到灰度环境
+ POST
/lv/publish2gray/:grayId/:objectId
- 请求参数:
objectId
:数据主键grayId
:灰度ID
- body:
desc
: 描述信息
发布版本到指定环境
+ GET
/lv/release/:versionId/:grayId
请求参数:
versionId
(路径参数):string,版本IDgrayId
(路径参数,可选):string,灰度ID。 如果不填,发布到正式环境
回滚版本到灰度环境
+ GET
/lv/rollback2gray/:versionId/:grayId
请求参数:
versionId
(路径参数):string,版本IDgrayId
(路径参数):string,灰度ID
批量回滚到正式环境
+ GET
/lv/rollback2gray/batch/:grayId
- 请求参数:
grayId
(路径参数):string,灰度ID
- body
- objectIds: string[],数据ID数组
行版本策略接口
获取行版本策略列表
+ GET
/lv/strategy
创建行版本策略
+ POST
/lv/strategy
body:
{
objects: "[]", // 直接复制
priority: versionId, // 替换为你的版本号ID
// 直接传入rules。其实是JSON.stringify以下对象[{ type: "and", rules: [{ object, field, relation, value }]}]。如果不知道你的对象的值,可以在管理台上操作后抓包看请求
rules: "[{\"type\":\"and\",\"rules\":[{\"object\":\"env\",\"field\":\"content\",\"relation\":\"includes\",\"value\":\"Hello\"}]}]", // 直接传入rules。其实是JSON.stringify([])
schemaId: "qq_icon", //替换为你的schemaId
stage: 0, // 直接复制
status: 1, // 直接复制
strategyInfo: "{\"type\":\"grayScaleRelease\"}", // 直接复制
target: versionId, // 替换为你的版本号ID
title: "(自动生成的策略)", // 直接复制
type: "row", // 直接复制
}
更新行版本策略
+ POST
/lv/strategy/patch/:strategyId
删除行版本策略
+ POST
/lv/strategy/delete/:strategyId