更新时间:2024-10-09 GMT+08:00

API绑定插件

功能介绍

绑定插件到API上。

  • 只能选择发布状态的API

  • 绑定以后及时生效

  • 修改插件后及时生效

  • 相同类型的插件只能绑定一个,如果再次绑定同类型的插件,那么已绑定的同类型插件将直接被覆盖。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/apis/{api_id}/plugins/attach

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

instance_id

String

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

api_id

String

API编号

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

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

表3 请求Body参数

参数

是否必选

参数类型

描述

env_id

String

绑定API的环境编码。

plugin_ids

Array of strings

绑定的插件编码列表。

数组长度:1 - 500

响应参数

状态码: 201

表4 响应Body参数

参数

参数类型

描述

attached_plugins

Array of PluginApiAttachInfo objects

绑定插件信息列表。

表5 PluginApiAttachInfo

参数

参数类型

描述

plugin_attach_id

String

插件绑定编码。

plugin_id

String

插件编码。

plugin_name

String

插件名称。支持汉字,英文,数字,中划线,下划线,且只能以英文和汉字开头,3-255字符

说明:

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

plugin_type

String

插件类型

  • cors:跨域资源共享

  • set_resp_headers:HTTP响应头管理

  • kafka_log:Kafka日志推送

  • breaker:断路器

  • rate_limit: 流量控制

  • third_auth: 第三方认证

枚举值:

  • cors

  • set_resp_headers

  • kafka_log

  • breaker

  • rate_limit

  • third_auth

plugin_scope

String

插件可见范围。global:全局可见。

枚举值:

  • global

env_id

String

绑定API的环境编码。

env_name

String

api授权绑定的环境名称

api_id

String

绑定的API编码。

api_name

String

API的名称

attached_time

String

绑定时间。

状态码: 400

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表10 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

将插件绑定到API上

{
  "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
  "plugin_ids" : [ "5b729aa252764739b3s237ef0d66dc63" ]
}

响应示例

状态码: 201

OK

{
  "attached_plugins" : [ {
    "plugin_attach_id" : "8aa097b00e9843efacb9c593d11b769e",
    "plugin_id" : "5b729aa252764739b3s237ef0d66dc63",
    "plugin_name" : "跨域插件",
    "plugin_type" : "cors",
    "plugin_scope" : "global",
    "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
    "env_name" : "RELEASE",
    "api_id" : "8aa097b00e9843efabc9c593d11b769d",
    "api_name" : "api_name",
    "attached_time" : "2022-11-02T12:31:23.353Z"
  } ]
}

状态码: 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.3068",
  "error_msg" : "Plugin b294018ee0554156a875b3513e02e5b9 does not exist"
}

状态码: 500

Internal Server Error

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

状态码

状态码

描述

201

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

错误码

请参见错误码