Skip to main content

版本管理接口(行级)

引言

行版本管理相关的接口,在管理台外部调用的时候需要配合鉴权密钥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,版本ID
  • grayId(路径参数,可选):string,灰度ID。 如果不填,发布到正式环境

回滚版本到灰度环境

+ GET /lv/rollback2gray/:versionId/:grayId

请求参数:

  • versionId(路径参数):string,版本ID
  • grayId(路径参数):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