更新时间:2024-08-06 GMT+08:00

修改分组下指定错误类型的自定义响应

功能介绍

修改分组下指定错误类型的自定义响应。

调用方法

请参见如何调用API

URI

PUT /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/gateway-responses/{response_id}/{response_type}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

instance_id

String

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

group_id

String

分组的编号

response_id

String

响应编号

response_type

String

错误类型

  • AUTH_FAILURE: 认证失败,IAM或APP认证校验失败
  • AUTH_HEADER_MISSING: 认证身份来源信息缺失
  • AUTHORIZER_FAILURE: 自定义认证方返回认证失败
  • AUTHORIZER_CONF_FAILURE:自定义认证方异常,通信失败、返回异常响应等错误
  • AUTHORIZER_IDENTITIES_FAILURE: 前端自定义认证的身份来源信息缺失或不合法错误
  • BACKEND_UNAVAILABLE: 后端不可用,网络不可达错误
  • BACKEND_TIMEOUT: 后端超时,与后端的网络交互超过预配置的时间错误
  • THROTTLED: API调用次数超出所配置的流量策略阈值
  • UNAUTHORIZED: 使用的凭据未被授权访问该API
  • ACCESS_DENIED: 拒绝访问,如触发配置的访问控制策略、或异常攻击检测拦截
  • NOT_FOUND: 未匹配到API错误
  • REQUEST_PARAMETERS_FAILURE: 请求参数校验失败、不支持的HTTP方法
  • DEFAULT_4XX: 其它4XX类错误
  • DEFAULT_5XX: 其它5XX类错误
  • THIRD_AUTH_FAILURE: 第三方认证方返回认证失败
  • THIRD_AUTH_IDENTITIES_FAILURE: 第三方认证的身份来源信息缺失或不合法错误
  • THIRD_AUTH_CONF_FAILURE: 第三方认证方异常,通信失败、返回异常响应等错误
  • ORCHESTRATION_PARAMETER_NOT_FOUND: 参数编排失败,请求中没有待编排的入参
  • ORCHESTRATION_FAILURE: 参数编排失败,没有编排规则匹配成功

枚举值:

  • AUTH_FAILURE
  • AUTH_HEADER_MISSING
  • AUTHORIZER_FAILURE
  • AUTHORIZER_CONF_FAILURE
  • AUTHORIZER_IDENTITIES_FAILURE
  • BACKEND_UNAVAILABLE
  • BACKEND_TIMEOUT
  • THROTTLED
  • UNAUTHORIZED
  • ACCESS_DENIED
  • NOT_FOUND
  • REQUEST_PARAMETERS_FAILURE
  • DEFAULT_4XX
  • DEFAULT_5XX
  • THIRD_AUTH_FAILURE
  • THIRD_AUTH_IDENTITIES_FAILURE
  • THIRD_AUTH_CONF_FAILURE
  • ORCHESTRATION_PARAMETER_NOT_FOUND
  • ORCHESTRATION_FAILURE

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

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

表3 请求Body参数

参数

是否必选

参数类型

描述

status

Integer

响应的HTTP状态码。范围为200-599,但不允许为444。

body

String

响应的Body模板

headers

Array of ResponseInfoHeader objects

自定义的响应头

数组长度:0 - 10

表4 ResponseInfoHeader

参数

是否必选

参数类型

描述

key

String

分组自定义响应的响应头的key,支持英文字母、数字和中划线,长度为1到128位

value

String

分组自定义响应的响应头的value,为长度为1到1024位的字符串

最小长度:1

最大长度:1024

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

{自定义key}

Map<String,ResponseInfoResp>

OK

表6 ResponseInfoResp

参数

参数类型

描述

status

Integer

响应的HTTP状态码。范围为200-599,但不允许为444。

body

String

响应的Body模板

headers

Array of ResponseInfoHeader objects

自定义的响应头

数组长度:0 - 10

default

Boolean

是否为默认响应

表7 ResponseInfoHeader

参数

参数类型

描述

key

String

分组自定义响应的响应头的key,支持英文字母、数字和中划线,长度为1到128位

value

String

分组自定义响应的响应头的value,为长度为1到1024位的字符串

最小长度:1

最大长度:1024

状态码: 400

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表12 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

修改分组下指定错误类型的自定义响应

{
  "body" : "body: \"{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}\"",
  "status" : 403
}

响应示例

状态码: 200

OK

{
  "ACCESS_DENIED" : {
    "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
    "default" : true,
    "status" : 403
  }
}

状态码: 400

Bad Request

{
  "error_code" : "APIG.2012",
  "error_msg" : "Invalid parameter value,parameterName:group_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.3001",
  "error_msg" : "API group c77f5e81d9cb4424bf704ef2b0ac7600 does not exist"
}

状态码: 500

Internal Server Error

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

状态码

状态码

描述

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码