Creating a Plug-in

Function

Plug-in information.

Calling Method

For details, see Calling APIs.

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/plugins

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain it, see Obtaining a Project ID.

instance_id

Yes

String

Gateway ID, which can be obtained from the gateway information on the APIG console.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is a token.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

plugin_name

Yes

String

Plug-in name. Enter 3 to 255 characters, starting with a letter. Only letters, digits, and underscores (_) are allowed.

plugin_type

Yes

String

Plug-in type.

  • cors: Cross-origin resource sharing.

  • set_resp_headers: HTTP response header management.

  • kafka_log: Kafka log push.

  • breaker: Circuit breaker.

  • rate_limit: Request throttling.

  • third_auth: Third-party authentication.

Enumeration values:

  • cors

  • set_resp_headers

  • kafka_log

  • breaker

  • rate_limit

  • third_auth

plugin_scope

Yes

String

Plug-in scope. global: Visible to all gateways.

Enumeration values:

  • global

plugin_content

Yes

String

Plug-in content in JSON format. For details, see the model definition.

  • CorsPluginContent

  • SetRespHeadersContent

  • KafkaLogContent

  • BreakerContent

  • RateLimitContent

  • ThirdAuthContent

Maximum: 65535

remark

No

String

Plug-in description, with a maximum of 255 characters.

Maximum: 255

Response Parameters

Status code: 201

Table 4 Response body parameters

Parameter

Type

Description

plugin_id

String

Plug-in ID.

plugin_name

String

Plug-in name. Start with a letter, and include only letters, digits, hyphens (-), and underscores(_). (3 to 255 characters)

plugin_type

String

Plug-in type.

  • cors: Cross-origin resource sharing.

  • set_resp_headers: HTTP response header management.

  • kafka_log: Kafka log push.

  • breaker: Circuit breaker.

  • rate_limit: Request throttling.

  • third_auth: Third-party authentication.

Enumeration values:

  • cors

  • set_resp_headers

  • kafka_log

  • breaker

  • rate_limit

  • third_auth

plugin_scope

String

Plug-in scope. global: Visible to all gateways.

Enumeration values:

  • global

plugin_content

String

Plug-in content in JSON format. For details, see the model definition.

  • CorsPluginContent

  • SetRespHeadersContent

  • KafkaLogContent

  • BreakerContent

  • RateLimitContent

  • ThirdAuthContent

Maximum: 65535

remark

String

Plug-in description, with a maximum of 255 characters.

Maximum: 255

create_time

String

Creation time.

update_time

String

Update time.

Status code: 400

Table 5 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 401

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 403

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 404

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 500

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Example Requests

Example Responses

Status code: 201

OK

Status code: 400

Bad Request

{
  "error_code" : "APIG.3326",
  "error_msg" : "The plugin name already exists"
}

Status code: 401

Unauthorized

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

Status code: 403

Forbidden

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

Status code: 404

Not Found

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

Status code: 500

Internal Server Error

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

Status Codes

Status Code

Description

201

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.