Creating a Request Throttling Policy
Function
After an API goes online, the system attaches a request throttling policy to it by default. The API provider can change the request throttling policy based on the service capabilities and load of the API. A request throttling policy restricts the maximum number of times an API can be called within a specified period.
Debugging
You can use API Explorer to debug this API.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/throttles
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
project_id |
Yes |
String |
Project ID. For details about how to obtain a project ID, see "Appendix" > "Obtaining a Project ID" in this document. |
|
instance_id |
Yes |
String |
Gateway ID. |
Request Parameters
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
X-Auth-Token |
Yes |
String |
User token, which 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 the user token. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
app_call_limits |
No |
Integer |
Maximum number of times the API can be accessed by an app within the same period. The value of this parameter must be less than or equal to that of user_call_limits. The maximum value is 2,147,483,647. Enter a positive integer. |
|
name |
Yes |
String |
Request throttling policy name, which can contain 3 to 64 characters, starting with a letter. Only letters, digits, and underscores (_) are allowed.
NOTE:
Chinese characters must be in UTF-8 or Unicode format. |
|
time_unit |
Yes |
String |
Time unit for limiting the number of API calls. Enumeration values:
|
|
remark |
No |
String |
Description of the request throttling policy, which can contain a maximum of 255 characters.
NOTE:
Chinese characters must be in UTF-8 or Unicode format. |
|
api_call_limits |
Yes |
Integer |
Maximum number of times an API can be accessed within a specified period. The value of this parameter cannot exceed the default limit 200 TPS. You can change the default limit to meet service requirements. The maximum value is 2,147,483,647. Enter a positive integer. |
|
type |
No |
Integer |
Type of the request throttling policy.
Enumeration values:
|
|
enable_adaptive_control |
No |
String |
Indicates whether to enable dynamic request throttling.
Currently, this parameter is not supported. |
|
user_call_limits |
No |
Integer |
Maximum number of times the API can be accessed by a user within the same period. The value of this parameter must be less than or equal to that of api_call_limits. The maximum value is 2,147,483,647. Enter a positive integer. |
|
time_interval |
Yes |
Integer |
Period of time for limiting the number of API calls. This parameter applies with each API call limit. The maximum value is 2,147,483,647. Enter a positive integer. |
|
ip_call_limits |
No |
Integer |
Maximum number of times the API can be accessed by an IP address within the same period. The value of this parameter must be less than or equal to that of api_call_limits. The maximum value is 2,147,483,647. Enter a positive integer. |
Response Parameters
Status code: 201
|
Parameter |
Type |
Description |
|---|---|---|
|
app_call_limits |
Integer |
Maximum number of times the API can be accessed by an app within the same period. The value of this parameter must be less than or equal to that of user_call_limits. The maximum value is 2,147,483,647. Enter a positive integer. |
|
name |
String |
Request throttling policy name, which can contain 3 to 64 characters, starting with a letter. Only letters, digits, and underscores (_) are allowed.
NOTE:
Chinese characters must be in UTF-8 or Unicode format. |
|
time_unit |
String |
Time unit for limiting the number of API calls. Enumeration values:
|
|
remark |
String |
Description of the request throttling policy, which can contain a maximum of 255 characters.
NOTE:
Chinese characters must be in UTF-8 or Unicode format. |
|
api_call_limits |
Integer |
Maximum number of times an API can be accessed within a specified period. The value of this parameter cannot exceed the default limit 200 TPS. You can change the default limit to meet service requirements. The maximum value is 2,147,483,647. Enter a positive integer. |
|
type |
Integer |
Type of the request throttling policy.
Enumeration values:
|
|
enable_adaptive_control |
String |
Indicates whether to enable dynamic request throttling.
Currently, this parameter is not supported. |
|
user_call_limits |
Integer |
Maximum number of times the API can be accessed by a user within the same period. The value of this parameter must be less than or equal to that of api_call_limits. The maximum value is 2,147,483,647. Enter a positive integer. |
|
time_interval |
Integer |
Period of time for limiting the number of API calls. This parameter applies with each API call limit. The maximum value is 2,147,483,647. Enter a positive integer. |
|
ip_call_limits |
Integer |
Maximum number of times the API can be accessed by an IP address within the same period. The value of this parameter must be less than or equal to that of api_call_limits. The maximum value is 2,147,483,647. Enter a positive integer. |
|
id |
String |
Request throttling policy ID. |
|
bind_num |
Integer |
Number of APIs to which the request throttling policy has been bound. |
|
is_inclu_special_throttle |
Integer |
Indicates whether an excluded request throttling configuration has been created.
Enumeration values:
|
|
create_time |
String |
Creation time. |
Status code: 400
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error message. |
Status code: 401
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error message. |
Status code: 403
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error message. |
Status code: 500
|
Parameter |
Type |
Description |
|---|---|---|
|
error_code |
String |
Error code. |
|
error_msg |
String |
Error message. |
Example Requests
{
"api_call_limits" : 800,
"app_call_limits" : 300,
"enable_adaptive_control" : "FALSE",
"ip_call_limits" : 600,
"name" : "throttle_demo",
"remark" : "Total: 800 calls/second; user: 500 calls/second; app: 300 calls/second; IP address: 600 calls/second",
"time_interval" : 1,
"time_unit" : "SECOND",
"type" : 1,
"user_call_limits" : 500
}
Example Responses
Status code: 201
Created
{
"name" : "throttle_demo",
"create_time" : "2020-07-31T08:44:02.205366118Z",
"remark" : "Total: 800 calls/second; user: 500 calls/second; app: 300 calls/second; IP address: 600 calls/second",
"type" : 1,
"time_interval" : 1,
"ip_call_limits" : 600,
"app_call_limits" : 300,
"time_unit" : "SECOND",
"api_call_limits" : 800,
"id" : "3437448ad06f4e0c91a224183116e965",
"user_call_limits" : 500,
"enable_adaptive_control" : "FALSE",
"bind_num" : 0,
"is_inclu_special_throttle" : 2
}
Status code: 400
Bad Request
{
"error_code" : "APIG.2011",
"error_msg" : "Invalid parameter value,parameterName:name. 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: 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 |
|
500 |
Internal Server Error |
Error Codes
See Error Codes.
Last Article: Request Throttling Policy Management
Next Article: Modifying a Request Throttling Policy
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.