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.