Updated on 2023-11-30 GMT+08:00

Creating an Excluded Request Throttling Configuration

Function

A request throttling policy controls the maximum number of times an API can be accessed within a specified period and the maximum numbers of times the API can be accessed by a tenant or an app within the same period.

If necessary, you can create an excluded request throttling configuration to specify the threshold of API calls for a specific app. For example, if you set the API call threshold for all apps to 500 calls/minute, you can specify the API call threshold of app 1 as 800 calls/minute.

You can add excluded apps or tenants to a request throttling policy.

Calling Method

For details, see Calling APIs.

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/throttles/{throttle_id}/throttle-specials

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.

throttle_id

Yes

String

Request throttling policy ID.

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

call_limits

Yes

Integer

Maximum number of times an excluded object can access an API within the throttling period.

object_id

Yes

String

Excluded app ID or account ID.

object_type

Yes

String

Excluded object type.

Enumeration values:

  • APP

  • USER

Response Parameters

Status code: 201

Table 4 Response body parameters

Parameter

Type

Description

id

String

Excluded configuration ID.

call_limits

Integer

Maximum number of times an excluded object can access an API within the throttling period.

apply_time

String

Throttling period.

app_name

String

App name.

app_id

String

App ID.

object_id

String

ID of an object specified in the excluded configuration.

object_type

String

Excluded object type, which can be APP or USER.

object_name

String

Name of an app or a tenant to which the excluded configuration applies.

throttle_id

String

Request throttling policy ID.

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

Adding an excluded app to a request throttling policy with threshold 150

{
  "call_limits" : 150,
  "object_id" : "356de8eb7a8742168586e5daf5339965",
  "object_type" : "APP"
}

Example Responses

Status code: 201

Created

{
  "call_limits" : 150,
  "app_name" : "app_demo",
  "object_name" : "app_demo",
  "object_id" : "356de8eb7a8742168586e5daf5339965",
  "throttle_id" : "3437448ad06f4e0c91a224183116e965",
  "apply_time" : "2020-08-04T02:40:56.717710961Z",
  "id" : "a3e9ff8db55544ed9db91d8b048770c0",
  "app_id" : "356de8eb7a8742168586e5daf5339965",
  "object_type" : "APP"
}

Status code: 400

Bad Request

{
  "error_code" : "APIG.2003",
  "error_msg" : "The parameter value is too large,parameterName:call_limits. Please refer to the support documentation"
}

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.3004",
  "error_msg" : "App 356de8eb7a8742168586e5daf5339965 does not exist"
}

Status code: 500

Internal Server Error

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

Status Codes

Status Code

Description

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.