更新时间:2023-11-30 GMT+08:00

新建变量

功能介绍

将API发布到不同的环境后,对于不同的环境,可能会有不同的环境变量,比如,API的服务部署地址,请求的版本号等。

用户可以定义不同的环境变量,用户在定义API时,在API的定义中使用这些变量,当调用API时,API网关会将这些变量替换成真实的变量值,以达到不同环境的区分效果。

环境变量定义在API分组上,该分组下的所有API都可以使用这些变量。

  1. 环境变量的变量名称必须保持唯一,即一个分组在同一个环境上不能有两个同名的变量。

  2. 环境变量区分大小写,即变量ABC与变量abc是两个不同的变量。

  3. 设置了环境变量后,使用到该变量的API的调试功能将不可使用。

  4. 定义了环境变量后,使用到环境变量的地方应该以对称的#标识环境变量,当API发布到相应的环境后,会对环境变量的值进行替换,如:定义的API的URL为:https://#address#:8080,环境变量address在RELEASE环境上的值为:192.168.1.5,则API发布到RELEASE环境后的真实的URL为:https://192.168.1.5:8080。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/env-variables

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见获取项目ID

instance_id

String

实例ID,在API网关控制台的“实例信息”中获取。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

variable_value

String

变量值支持英文字母、数字、英文格式的下划线、中划线,斜线(/)、点、冒号,1 ~ 255个字符。

env_id

String

环境编号

最小长度:1

最大长度:65

group_id

String

API分组编号

最小长度:1

最大长度:65

variable_name

String

变量名,支持英文字母、数字、英文格式的下划线、中划线,必须以英文字母开头,3~32个字符。在API定义中等于#Name的值#部分(区分大小写),发布到环境里的API被变量值换。

说明:

中文字符必须为UTF-8或者unicode编码。

响应参数

状态码: 201

表4 响应Body参数

参数

参数类型

描述

variable_value

String

变量值支持英文字母、数字、英文格式的下划线、中划线,斜线(/)、点、冒号,1 ~ 255个字符。

env_id

String

环境编号

最小长度:1

最大长度:65

group_id

String

API分组编号

最小长度:1

最大长度:65

variable_name

String

变量名,支持英文字母、数字、英文格式的下划线、中划线,必须以英文字母开头,3~32个字符。在API定义中等于#Name的值#部分(区分大小写),发布到环境里的API被变量值换。

说明:

中文字符必须为UTF-8或者unicode编码。

id

String

环境变量编号

状态码: 400

表5 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

创建一个环境变量

{
  "variable_name" : "address",
  "variable_value" : "192.168.1.5",
  "env_id" : "7a1ad0c350844ee69479b47df9a881cb",
  "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600"
}

响应示例

状态码: 201

Created

{
  "variable_value" : "192.168.1.5",
  "env_id" : "7a1ad0c350844ee69479b47df9a881cb",
  "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600",
  "id" : "25054838a624400bbf2267cf5b3a3f70",
  "variable_name" : "address"
}

状态码: 400

Bad Request

{
  "error_code" : "APIG.2012",
  "error_msg" : "Invalid parameter value,parameterName:instance_id. Please refer to the support documentation"
}

状态码: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

状态码: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

状态码: 404

Not Found

{
  "error_code" : "APIG.3003",
  "error_msg" : "The instance does not exist;id:f0fa1789-3b76-433b-a787-9892951c620ec"
}

状态码: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

状态码

状态码

描述

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码