# open api 对外接口文档

# 1. 获取工程 api token

# 描述

获取open api 访问的token

# 请求类型

POST

# 请求URL

/api/auth

# 请求参数(json body)

参数名称 类型 方式 必填 说明
projectName String body Y 工程名称
apiPassword String body Y 工程api密码

# 请求示例

{
    "projectName": "yourProjectName",
    "apiPassword": "yourProjectPassword"
}

# 返回参数

参数名称 类型 说明
projectId Long 工程ID
projectName String 工程名称
token String 访问工程的 api token
neverExpired Boolean 是否永不过期,true: 永不过期,false: 根据expiredTime判断是否过期
expiredTime Long 过期时间,时间戳形式,单位为毫秒

# 返回样例

{
    "status":0,
    "msg":"success",
    "data":{
        "projectId":6,
        "projectName":"your-project-name",
        "token":"04ecc5c89105461a90b946f8fe1f0948",
        "neverExpired":true,
        "expiredTime":0
    }
}

# 2. 获取工程下的所有环境

# 描述

获取工程下的所有环境

# 请求类型

GET

# 请求URL

/api/environment

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y 工程的 api token

# 请求示例


curl --request GET -sL \
     --url 'http://ip:port/api/environment?token=03ecc4c89105461a90b926f8fe1f0948'

# 返回参数

参数名称 类型 说明
projectId Long 工程ID
environmentId Long 环境ID
environmentName String 环境名称

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":[
    {
      "projectId":6,
      "environmentId":54,
      "environmentName":"dev"
    },
    {
      "projectId":6,
      "environmentId":55,
      "environmentName":"test"
    },
    {
      "projectId":6,
      "environmentId":56,
      "environmentName":"online"
    }
  ]
}

# 3. 根据环境名称获取指定环境

# 描述

根据环境名称获取指定环境

# 请求类型

GET

# 请求URL

/api/environment/{environmentName}

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y 工程的 api token
environmentName String path Y 环境名称

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/environment/dev?token=03ecc4c89105461a90b926f8fe1f0948'

# 返回参数

参数名称 类型 说明
projectId Long 工程ID
environmentId Long 环境ID
environmentName String 环境名称

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":{
    "projectId":6,
    "environmentId":56,
    "environmentName":"online"
  }
}

# 4. 获取环境下所有版本

# 描述

获取环境下所有版本

# 请求类型

GET

# 请求URL

/api/version

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
environmentId Long query Y 环境ID

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/version?token=03ecc61a90b926f8fe1f0948&environmentId=3'

# 返回参数

参数名称 类型 说明
projectId Long 工程ID
environmentId Long 环境ID
versionId Long 版本ID
versionName String 版本名称
checkSum String 版本checkSum

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":[
    {
      "projectId":6,
      "environmentId":58,
      "versionId":63,
      "versionName":"1.0.0.0",
      "checkSum":""
    }
  ]
}

# 5. 根据版本名称获取指定版本

# 描述

根据版本名称获取指定版本

# 请求类型

GET

# 请求URL

/api/version/{versionName}

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
environmentId Long query Y 环境ID
versionName String path Y 版本名称

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/version/1.0.0?token=03eccb926f8fe1f0948&environmentId=3'

# 返回参数

参数名称 类型 说明
projectId Long 工程ID
environmentId Long 环境ID
versionId Long 版本ID
versionName String 版本名称
checkSum String 版本checkSum

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":{
    "projectId":6,
    "environmentId":58,
    "versionId":63,
    "versionName":"1.0.0.0",
    "checkSum":""
  }
}

# 6. 根据版本名称获取指定版本(支持灰度)

# 描述

根据版本名称获取指定版本或灰度版本

# 请求类型

GET

# 请求URL

/api/v2/version/{versionName}

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
environmentId Long query Y 环境ID
containerId String query N 容器ID
idc String query N 机房名称
ip String query N ip
versionName String path Y 主版本名称

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/v2/version/1.0.0?token=5461a26f8fe1f0948&environmentId=3'

# 返回参数

参数名称 类型 说明
projectId Long 工程ID
environmentId Long 环境ID
versionId Long 版本ID
versionName String 版本名称
checkSum String 版本checkSum

# 返回样例

{
  "status": 0,
    "msg": "success",
    "data": {
        "projectId": 16,
        "environmentId": 49,
        "versionId": 94,
        "versionName": "灰度版本0",
        "checkSum": ""
    },
    "sts": 1628738798909
}

# 7. 获取版本下所有分组

# 描述

获取版本下所有分组

# 请求类型

GET

# 请求URL

/api/group

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long query Y 版本ID

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/group/1.0.0?token=03ecc4c891090b926f8fe1f0948&versionId=3'

# 返回参数

参数名称 类型 说明
groupId Long 分组ID
groupName String 分组名称

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":[
    {
      "groupId":506,
      "groupName":"g1"
    },
    {
      "groupId":507,
      "groupName":"g2"
    }
  ]
}

# 8. 获取所有配置项

# 描述

获取所有配置项

# 请求类型

GET

# 请求URL

/api/item

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long query Y 版本ID

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/item?token=03ecc4c8910b926f8fe1f0948&versionId=3'

# 返回参数

参数名称 类型 说明
key String 配置项名称
value String 配置值

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":[
    {
      "key":"amis.bns",
      "value":"group.legend-frontend.orp.all"
    },
    {
      "key":"amis.enable",
      "value":"false"
    },
    {
      "key":"amis.env",
      "value":"test"
    },
    {
      "key":"bdrp.nodes",
      "value":"10.206.201.47:8404"
    },
    {
      "key":"bigpipe.auditPass.cluster",
      "value":"bigpipe_sandbox_new"
    }
  ]
}

# 9. 根据分组获取分组下配置项

# 描述

根据分组获取分组下配置项

# 请求类型

GET

# 请求URL

/api/groupItem

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
groupId Long query Y 分组ID

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/groupItem?token=03ecc4c89106f8fe1f0948&groupId=3'

# 返回参数

参数名称 类型 说明
key String 配置项名称
value String 配置值

# 返回样例

{
  "status":0,
  "msg":"success",
  "data": {
    "key":"amis.env",
    "value":"test"
  }
}

# 10. 根据配置名称获取指定配置项

# 描述

根据配置名称获取指定配置项

# 请求类型

GET

# 请求URL

/api/item/{itemName}

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long query Y 版本ID
itemName String path Y 配置名称

# 请求示例

curl --request GET -sL \
     --url 'http://ip:port/api/item/MySQL?token=03ecc4c8926f8fe1f0948&versionId=3'

# 返回参数

参数名称 类型 说明
key String 配置项名称
value String 配置值

# 返回样例

{
  "status":0,
  "msg":"success",
  "data": {
    "key":"amis.env",
    "value":"test"
  }
}

# 11. 批量获取指定配置项

# 描述

批量获取指定配置项

# 请求类型

POST

# 请求URL

/api/item/batchItem

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long body Y 版本ID
keys List<String> body N 如果为空则获取版本下的所有配置项

# 请求示例

{
    "versionId":3,
    "keys":[
        "k1",
        "k2"
    ]
}

# 返回参数

参数名称 类型 说明
key String 配置项名称
value String 配置值

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":[
    {
      "key":"spring.datasource.hikari.max-lifetime",
      "value":"1800000"
    },
    {
      "key":"spring.datasource.name",
      "value":"mdc-datasource"
    }
  ]
}

# 12. 新增环境

# 描述

新增环境

# 请求类型

POST

# 请求URL

/api/environmentAdd

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
name String body Y 环境名称
memo String body N 环境简介

# 请求示例

{
  "name":"dev",
  "memo":"开发"  
}

# 返回参数

参数名称 类型 说明
id Long 环境ID

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":1
}

# 13. 新增版本

# 描述

新增版本

# 请求类型

POST

# 请求URL

/api/versionAdd

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
environmentId Long body Y 环境ID
name String body Y 版本名称
memo String body N 版本简介

# 请求示例

{
  "environmentId":50,
  "name":"1.0",
  "memo":"1.0版本"  
}

# 返回参数

参数名称 类型 说明
id Long 版本ID

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":1
}

# 14. 新增分组

# 描述

新增分组

# 请求类型

POST

# 请求URL

/api/groupAdd

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long body Y 版本ID
name String body Y 分组名称
memo String body N 分组简介

# 请求示例

{
  "versionId":63,
  "name":"g1",
  "memo":"简介"  
}

# 返回参数

参数名称 类型 说明
id Long 分组ID

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":1
}

# 15. 新增配置项

# 描述

新增配置项

# 请求类型

POST

# 请求URL

/api/itemAdd

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long body Y 版本ID
groupId Long body Y 分组ID
key String body Y 配置项名称
value String body Y 配置项值
memo String body N 配置项简介

# 请求示例

{
  "versionId":63,
  "groupId":12,
  "key":"a",
  "value":"ssss",
  "memo":"简介"  
}

# 返回参数

参数名称 类型 说明
id Long 配置项ID

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":1
}

# 16. 修改配置项

# 描述

修改配置项

# 请求类型

POST

# 请求URL

/api/itemEdit

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long body Y 版本ID
key String body Y 配置项名称
value String body N 配置项值
memo String body N 配置项简介

# 请求示例

{
  "versionId":63,
  "key":"a",
  "value":"ssss",
  "memo":"简介"  
}

# 返回参数

参数名称 类型 说明
cnt Long 影响行数

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":2
}

# 17. 删除配置项

# 描述

删除配置项

# 请求类型

POST

# 请求URL

/api/itemDelete

# 请求参数(query string)

参数名称 类型 方式 必填 说明
token String query Y api token
versionId Long body Y 版本ID
key String body Y 配置项名称

# 请求示例

{
  "versionId":63,
  "key":"a"
}

# 返回参数

参数名称 类型 说明
cnt Long 影响行数

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":1
}

# 18. 批量修改配置项

# 描述

批量修改配置项

# 请求类型

POST

# 请求URL

/api/batchSave

# 请求参数(query string)

参数名称 类型 方式 必填 说明

token | String | query | Y | api token versionId | Long | body | Y | 版本ID groupId | Long | body | Y | 分组ID items | List<Object> | body | N | 配置项列表 items[i].name | String | body | Y | 配置项名称 items[i].memo | String | body | N | 配置项简介 items[i].val | String | body | N | 配置项值

# 请求示例

{
  "versionId":3,
  "groupId":60,
  "items":[
    {
      "name":"test",
      "val":"123"
  }
    ]  
}

# 返回参数

参数名称 类型 说明
cnt Long 影响行数

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":1
}

# 19. 推送变更

# 描述

推送配置项变更

# 请求类型

POST

# 请求URL

/api/version/pushChange

# 请求参数(query string)

参数名称 类型 方式 必填 说明

token | String | query | Y | api token versionId | Long | query | Y | 版本ID

# 请求示例

curl --request POST -sL \
     --url 'http://ip:port/api/version/pushChange?token=03ecc4c8910b926f8fe1f0948&versionId=3'

# 返回参数

参数名称 类型 说明
cnt Long 影响行数

# 返回样例

{
  "status":0,
  "msg":"success",
  "data":1
}