12.2 Open API

Open API授权公共参数和签名方式请参考 API授权

本文档包含了主要的接口清单,详细文档正在编写中

接口总览

  1. GET api/v1/confgo/config/list
  2. GET api/v1/confgo/config/detail
  3. GET api/v1/confgo/config/diff
  4. GET api/v1/confgo/config/instance/list
  5. GET api/v1/confgo/config/history
  6. POST api/v1/confgo/config/create
  7. POST api/v1/confgo/config/update
  8. POST api/v1/confgo/config/publish
  9. POST api/v1/confgo/config/delete
  10. GET api/v1/confgo/config/diffVersion
  11. GET api/v1/resource/app_env_zone/list

接口详情

GET api/v1/confgo/config/list

input

  1. AppName string `query:"app_name"`
  2. Env string `query:"env"`

output

  1. [{
  2. ID uint `json:"id"`
  3. AID uint `json:"aid"`
  4. Name string `json:"name"`
  5. Format string `json:"format"` // Yaml/Toml
  6. Env string `json:"env"` // 环境
  7. Zone string `json:"zone"` // 机房Zone
  8. CreatedAt time.Time `json:"created_time"`
  9. UpdatedAt time.Time `json:"update_time"`
  10. DeletedAt *time.Time `json:"deleted_at"`
  11. PublishedAt *time.Time `json:"published"` // 未发布/发布时间
  12. }]

GET api/v1/confgo/config/detail

input

  1. ID uint `json:"id"`

output

  1. ID uint `json:"id"`
  2. AID uint `json:"aid"`
  3. Name string `json:"name"`
  4. Content string `json:"content"`
  5. Format string `json:"format"` // Yaml/Toml
  6. Env string `json:"env"` // 环境
  7. Zone string `json:"zone"` // 机房Zone
  8. CreatedAt time.Time `json:"created_time"`
  9. UpdatedAt time.Time `json:"update_time"`
  10. PublishedAt *time.Time `json:"published"` // 未发布/发布时间

api/v1/confgo/config/diff

input

  1. ID uint `query:"id" valid:"required"` // 配置ID
  2. HistoryID uint `query:"history_id" valid:"required"` // 版本ID

output

  1. Origin *RespDetailConfig `json:"origin,omitempty"`
  2. Modified RespDetailConfig `json:"modified"`

api/v1/confgo/config/instance/list

input

  1. ConfigurationID uint `json:"id" query:"id" validate:"required"`
  2. Env string `json:"env" query:"env" validate:"required"`
  3. ZoneCode string `json:"zone_code" query:"zone_code" validate:"required"`

output

  1. [{
  2. ConfigurationStatusID uint `json:"configuration_status_id"`
  3. Env string `json:"env"`
  4. IP string `json:"ip"`
  5. HostName string `json:"host_name"`
  6. DeviceID int `json:"device_id"`
  7. RegionCode string `json:"region_code"`
  8. RegionName string `json:"region_name"`
  9. ZoneCode string `json:"zone_code"`
  10. ZoneName string `json:"zone_name"`
  11. ConfigFilePath string `json:"config_file_path"`
  12. ConfigFileUsed uint `json:"config_file_used"` // 1 supervisor 2 systemd
  13. ConfigFileSynced uint `json:"config_file_synced"`
  14. ConfigFileTakeEffect uint `json:"config_file_take_effect"`
  15. SyncAt time.Time `json:"sync_at"`
  16. }]

api/v1/confgo/config/history

input

  1. ID uint `json:"id"` // 配置文件ID
  2. Size uint `json:"size"`
  3. Page uint `json:"page"`

output

  1. {
  2. Pagination {
  3. Current int `json:"current"`
  4. Total int `json:"total"`
  5. PageSize int `json:"pageSize"`
  6. } `json:"pagination"`
  7. List[{
  8. ID uint `json:"id"`
  9. UID uint `json:"uid"` // 发布人ID
  10. UserName string `json:"user_name"`
  11. ChangeLog string `json:"change_log"`
  12. ConfigurationID uint `json:"configuration_id"`
  13. Version string `json:"version"` // 发布到Juno Proxy的版本号
  14. CreatedAt time.Time `json:"created_at"`
  15. }] `json:"list"`
  16. }

POST api/v1/confgo/config/create

input

  1. AppName string `json:"app_name"`
  2. Env string `json:"env"`
  3. Zone string `json:"zone"`
  4. FileName string `json:"file_name"` // 文件名(不带后缀)
  5. Format ConfigFormat `json:"format"` // 格式后缀名(比如: toml, yaml)

POST api/v1/confgo/config/update

input

  1. ID uint `json:"id"`
  2. Message string `json:"message"`
  3. Content string `json:"content"`

POST api/v1/confgo/config/publish

input

  1. ID uint `json:"id"` // 配置ID
  2. Version *string `json:"version"` // 版本号

api/v1/confgo/config/delete

input

  1. ID uint `json:"id"`

POST api/v1/confgo/config/diffVersion

参数名必选类型说明
ipList[]stringip地址列表
appNamestring应用名称
envstring环境名称
  • 请求参数示例
  1. {
  2. http://10.117.22.35:50000/api/v1/confgo/config/diffVersion?ips=10.117.22.35&appName=jupiter-demo&env=live
  3. }
  • 返回值
  1. {
  2. "code": 0,
  3. "msg": "",
  4. "data": {
  5. "hasNew": false,
  6. "diffUrlList": [{
  7. "name": "single-rexxx:qgion-admin",
  8. "diffUrl": "http://jupiterxxxconsole.douyu.com/app?aid=1\u0026appName=jupiter-demo\u0026env=live\u0026tab=confgo\u0026publishVersion=\u0026serviceVersion=fa041303713cc4d198f6feb282f23a98"
  9. }]
  10. }
  11. }

GET api/v1/resource/app_env_zone/list

input

  1. AppName string `query:"app_name"`

output

  1. [
  2. {
  3. Env string `json:"env"`
  4. ZoneList []struct {
  5. ZoneCode string `json:"zone_code"`
  6. ZoneName string `json:"zone_name"`
  7. } `json:"zone_list"`
  8. }
  9. ]