Criação de uma política de limitação de solicitações
Função
Depois que uma API fica on-line, o sistema anexa uma política de limitação de solicitações a ela por padrão. O provedor de API pode alterar a política de limitação de solicitações com base nos recursos de serviço e na carga da API. Uma política de limitação de solicitações restringe o número máximo de vezes que uma API pode ser chamada dentro de um período especificado.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/throttles
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| project_id | Sim | String | ID do projeto. Para obter detalhes sobre como obter um ID de projeto, consulte "Apêndice" > "Obtenção de um ID de projeto" neste documento. |
| instance_id | Sim | String | ID do gateway, que pode ser obtido a partir das informações de gateway no console do APIG. |
Parâmetros de solicitação
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| X-Auth-Token | Sim | String | Token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é um token. |
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| app_call_limits | Não | Integer | Número máximo de vezes que a API pode ser acessada por uma aplicação no mesmo período. O valor desse parâmetro não pode exceder o limite de chamada do usuário. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| name | Sim | String | Solicitar nome da política de limitação. Pode conter de 3 a 64 caracteres, começando com uma letra. Apenas letras, dígitos e sublinhados (_) são permitidos. |
| time_unit | Sim | String | Unidade de tempo para limitar o número de chamadas de API. Valores de enumeração:
|
| remark | Não | String | Descrição da política de limitação de solicitações, que pode conter no máximo 255 caracteres. |
| api_call_limits | Sim | Integer | Número máximo de vezes que uma API pode ser acessada em um período especificado. O valor deste parâmetro não pode exceder o limite padrão 200 TPS. Você pode alterar o limite padrão para atender aos requisitos de serviço. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| type | Não | Integer | Tipo da política de limitação de solicitação.
Valores de enumeração:
|
| enable_adaptive_control | Não | String | Indica se deve ser ativada a limitação de solicitações dinâmicas.
Atualmente, este parâmetro não é suportado. |
| user_call_limits | Não | Integer | Número máximo de vezes que a API pode ser acessada por um usuário no mesmo período. O valor deste parâmetro não pode exceder o máximo solicitações de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| time_interval | Sim | Integer | Período de tempo para limitar o número de chamadas de API. Esse parâmetro se aplica a cada limite de chamada de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| ip_call_limits | Não | Integer | Número máximo de vezes que a API pode ser acessada por um endereço IP no mesmo período. O valor desse parâmetro não pode exceder o limite de chamadas da API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
Parâmetros de resposta
Código de status: 201
| Parâmetro | Tipo | Descrição |
|---|---|---|
| app_call_limits | Integer | Número máximo de vezes que a API pode ser acessada por uma aplicação no mesmo período. O valor desse parâmetro não pode exceder o limite de chamada do usuário. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| name | String | Solicitar nome da política de limitação. Pode conter de 3 a 64 caracteres, começando com uma letra. Apenas letras, dígitos e sublinhados (_) são permitidos. |
| time_unit | String | Unidade de tempo para limitar o número de chamadas de API. Valores de enumeração:
|
| remark | String | Descrição da política de limitação de solicitações, que pode conter no máximo 255 caracteres. |
| api_call_limits | Integer | Número máximo de vezes que uma API pode ser acessada em um período especificado. O valor deste parâmetro não pode exceder o limite padrão 200 TPS. Você pode alterar o limite padrão para atender aos requisitos de serviço. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| type | Integer | Tipo da política de limitação de solicitação.
Valores de enumeração:
|
| enable_adaptive_control | String | Indica se deve ser ativada a limitação de solicitações dinâmicas.
Atualmente, este parâmetro não é suportado. |
| user_call_limits | Integer | Número máximo de vezes que a API pode ser acessada por um usuário no mesmo período. O valor deste parâmetro não pode exceder o máximo solicitações de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| time_interval | Integer | Período de tempo para limitar o número de chamadas de API. Esse parâmetro se aplica a cada limite de chamada de API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| ip_call_limits | Integer | Número máximo de vezes que a API pode ser acessada por um endereço IP no mesmo período. O valor desse parâmetro não pode exceder o limite de chamadas da API. O valor máximo é 2.147.483.647. Insira um número inteiro positivo. |
| id | String | ID da política de limitação de solicitações. |
| bind_num | Integer | Número de APIs às quais a política de limitação de solicitações foi vinculada. |
| is_inclu_special_throttle | Integer | Indica se uma configuração de limitação de solicitação excluída foi criada.
Valores de enumeração:
|
| create_time | String | Tempo de criação. |
Código de status: 400
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Código de status: 401
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Código de status: 403
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Código de status: 500
| Parâmetro | Tipo | Descrição |
|---|---|---|
| error_code | String | Código de erro. |
| error_msg | String | Mensagem de erro. |
Exemplo de solicitações
{
"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
} Exemplo de respostas
Código de status: 201
Criado
{
"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
} Código de status: 400
Solicitação inválida
{
"error_code" : "APIG.2011",
"error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation"
} Código de status: 401
Não autorizado
{
"error_code" : "APIG.1002",
"error_msg" : "Incorrect token or token resolution failed"
} Código de status: 403
Proibido
{
"error_code" : "APIG.1005",
"error_msg" : "No permissions to request this method"
} Código de status: 500
Erro do servidor interno
{
"error_code" : "APIG.9999",
"error_msg" : "System error"
} Códigos de status
| Código de status | Descrição |
|---|---|
| 201 | Criado |
| 400 | Solicitação inválida |
| 401 | Não autorizado |
| 403 | Proibido |
| 500 | Erro do servidor interno |
Códigos de erro
Consulte Códigos de erro.