更新时间:2023-05-09 GMT+08:00

创建分组自定义响应

功能介绍

新增分组下自定义响应

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/gateway-responses

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见API参考的“附录 > 获取项目ID”章节。

instance_id

String

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

group_id

String

分组的编号

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

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

表3 请求Body参数

参数

是否必选

参数类型

描述

name

String

响应名称

responses

Map<String,ResponseInfo>

错误类型的响应定义,其中key为错误类型。key的枚举值为:

  • AUTH_FAILURE:认证失败

  • AUTH_HEADER_MISSING:认证身份来源缺失

  • AUTHORIZER_FAILURE:自定义认证失败

  • AUTHORIZER_CONF_FAILURE:自定义认证配置错误

  • AUTHORIZER_IDENTITIES_FAILURE:自定义认证身份来源错误

  • BACKEND_UNAVAILABLE:后端不可用

  • BACKEND_TIMEOUT:后端超时

  • THROTTLED:调用次数超出阈值

  • UNAUTHORIZED:应用未授权

  • ACCESS_DENIED:拒绝访问

  • NOT_FOUND:未找到匹配的API

  • REQUEST_PARAMETERS_FAILURE:请求参数错误

  • DEFAULT_4XX:默认4XX

  • DEFAULT_5XX:默认5XX

每项错误类型均为一个JSON体

表4 ResponseInfo

参数

是否必选

参数类型

描述

status

Integer

响应的HTTP状态码

body

String

响应的Body模板

响应参数

状态码: 201

表5 响应Body参数

参数

参数类型

描述

name

String

响应名称

responses

Map<String,ResponseInfoResp>

错误类型的响应定义,其中key为错误类型。key的枚举值为:

  • AUTH_FAILURE:认证失败

  • AUTH_HEADER_MISSING:认证身份来源缺失

  • AUTHORIZER_FAILURE:自定义认证失败

  • AUTHORIZER_CONF_FAILURE:自定义认证配置错误

  • AUTHORIZER_IDENTITIES_FAILURE:自定义认证身份来源错误

  • BACKEND_UNAVAILABLE:后端不可用

  • BACKEND_TIMEOUT:后端超时

  • THROTTLED:调用次数超出阈值

  • UNAUTHORIZED:应用未授权

  • ACCESS_DENIED:拒绝访问

  • NOT_FOUND:未找到匹配的API

  • REQUEST_PARAMETERS_FAILURE:请求参数错误

  • DEFAULT_4XX:默认4XX

  • DEFAULT_5XX:默认5XX

每项错误类型均为一个JSON体

id

String

响应ID

default

Boolean

是否为分组默认响应

create_time

String

创建时间

update_time

String

修改时间

表6 ResponseInfoResp

参数

参数类型

描述

status

Integer

响应的HTTP状态码

body

String

响应的Body模板

default

Boolean

是否为默认响应

状态码: 400

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表11 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

{
  "name" : "response_demo"
}

响应示例

状态码: 201

Created

{
  "create_time" : "2020-08-12T14:52:02.829753306+08:00",
  "update_time" : "2020-08-12T14:52:02.829753306+08:00",
  "default" : false,
  "id" : "e839b367e10f4ab19d1c5008e476b83a",
  "name" : "response_demo",
  "responses" : {
    "ACCESS_DENIED" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 403
    },
    "AUTHORIZER_CONF_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 500
    },
    "AUTHORIZER_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 500
    },
    "AUTHORIZER_IDENTITIES_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    },
    "AUTH_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    },
    "AUTH_HEADER_MISSING" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    },
    "BACKEND_TIMEOUT" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 504
    },
    "BACKEND_UNAVAILABLE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 502
    },
    "DEFAULT_4XX" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true
    },
    "DEFAULT_5XX" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true
    },
    "NOT_FOUND" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 404
    },
    "REQUEST_PARAMETERS_FAILURE" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 400
    },
    "THROTTLED" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 429
    },
    "UNAUTHORIZED" : {
      "body" : "{\"error_code\":\"$context.error.code\",\"error_msg\":\"$context.error.message\",\"request_id\":\"$context.requestId\"}",
      "default" : true,
      "status" : 401
    }
  }
}

状态码: 400

Bad Request

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:name. 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"
}

状态码

状态码

描述

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码