Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. info
Visão geral
A política MonetizationLimitsCheck permite aplicar limites de monetização às chamadas de API feitas pelo desenvolvedor de apps.
Alguns dos casos em que a política é acionada são:
- Se um desenvolvedor de apps que acessa a API monetizada não tiver comprado uma assinatura do produto de API associado
- A conta do desenvolvedor não tem saldo suficiente.
- O desenvolvedor excedeu o limite de volume de transações.
Para saber como anexar a política ao proxy de API, consulte Aplicar limites de monetização em proxies de API.
Elemento <MonetizationLimitsCheck>
Especifica a política MonetizationLimitsCheck.
| Valor padrão | N/A |
| Obrigatório? | Obrigatório |
| Tipo | Tipo complexo |
| Elemento pai | N/A |
| Elemento filho |
<DisplayName><FaultResponse><IgnoreUnresolvedVariables><Variables> |
A tabela a seguir fornece uma descrição de alto nível dos elementos-filhos de <MonetizationLimitsCheck>:
| Elemento filho | Obrigatório? | Descrição |
|---|---|---|
<DisplayName> |
Opcional | Um nome personalizado para a política. |
<FaultResponse> |
Opcional | Especifica a mensagem de resposta retornada ao cliente solicitante quando a falha é gerada. |
<IgnoreUnresolvedVariables> |
Opcional | Determina se o processamento é interrompido quando uma variável não resolvida é encontrada. |
<Variables> |
Opcional | Especifica as variáveis de fluxo para verificar os limites de monetização. |
O elemento <MonetizationLimitsCheck> usa a seguinte sintaxe:
Sintaxe
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="POLICY_NAME"> <DisplayName>DISPLAY_NAME</DisplayName> <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables> <Variables> <Product>VARIABLE_NAME</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>MESSAGE_TEXT</message> <message>MESSAGE_TEXT</message> </messages> </error> </Payload> <StatusCode>HTTP_STATUS</StatusCode> <ReasonPhrase>REASON_TEXT</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
Exemplo
O exemplo a seguir mostra a definição da política MonetizationLimitsCheck:
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="Monetization-Limits-Check"> <DisplayName>Monetization Limits Check</DisplayName> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Variables> <Product>myproductvar.name</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>Developer has reached usage quota</message> <message>Is Developer Suspended - {monetizationLimits.isDeveloperSuspended} </message> </messages> </error> </Payload> <StatusCode>403</StatusCode> <ReasonPhrase>Forbidden</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
Este elemento tem os seguintes atributos comuns a todas as políticas:
| Atributo | Padrão | Obrigatório? | Descrição |
|---|---|---|---|
name |
N/A | Obrigatório |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
continueOnError |
falso | Opcional | Defina como "false" para retornar um erro quando uma política falhar. Esse é o comportamento esperado para a maioria das políticas. Defina como "true" para que a execução do fluxo continue mesmo após a falha de uma política. |
enabled |
verdadeiro | Opcional | Defina como "true" para aplicar a política. Defina como "false" para "turn off" a política. A política não será aplicada mesmo que permaneça vinculada a um fluxo. |
async |
falso | Descontinuado | Esse atributo está obsoleto. |
Referência a elementos filhos
Esta seção descreve os elementos filhos de<MonetizationLimitsCheck>.
<DisplayName>
Use além do atributo name para rotular a política no editor de proxy da IU de gerenciamento com um nome de som diferente e mais natural.
O elemento <DisplayName> é comum a todas as políticas.
| Valor padrão | n/a |
| Obrigatório? | Opcional. Se você omitir <DisplayName>, o valor do atributo name da política será usado |
| Tipo | String |
| Elemento pai | <PolicyElement> |
| Elemento filho | Nenhum |
O elemento <DisplayName> usa a seguinte sintaxe:
Sintaxe
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
Exemplo
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
O elemento <DisplayName> não tem atributos ou elementos filhos.
<IgnoreUnresolvedVariables>
Determina se o processamento da política precisa ser interrompido quando a Apigee encontra uma variável não resolvida.
| Valor padrão | Verdadeiro |
| Obrigatório? | Opcional |
| Tipo | Booleano |
| Elemento pai |
<MonetizationLimitsCheck> |
| Elemento filho | Nenhum |
Para ignorar variáveis não resolvidas e continuar o processamento, defina o valor como true;
caso contrário false. O valor padrão é true.
Definir <IgnoreUnresolvedVariables> como true é diferente de definir continueOnError do elemento <MonetizationLimitsCheck> como true. Se você definir continueOnError como true, a Apigee vai ignorar não
apenas os erros de variável, mas todos os erros.
O elemento <IgnoreUnresolvedVariables> usa a seguinte sintaxe:
Sintaxe
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
Exemplo
O exemplo a seguir define <IgnoreUnresolvedVariables> como false:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
Especifica as variáveis de fluxo das quais você quer buscar os nomes de entidades ou recursos durante a execução da política.
É possível especificar apenas o <Product> elemento dentro do <Variables> elemento. A Apigee recebe
o nome do produto de API da variável de fluxo especificada no elemento <Product>. Se você
não especificar o elemento <Variables>, a Apigee vai receber o nome do produto de API da
variável de contexto apiproduct.name por padrão. Ao usar o nome do produto de API, a Apigee recebe o plano de tarifas correspondente do produto e realiza a verificação de limites de monetização.
| Valor padrão | N/A |
| Obrigatório? | Opcional |
| Tipo | Tipo complexo |
| Elemento pai |
<MonetizationLimitsCheck> |
| Elemento filho |
<Product> |
O elemento <Variables> usa a seguinte sintaxe:
Sintaxe
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>Exemplo
O exemplo a seguir recebe o nome do produto de API da variável de fluxo personalizada myproductvar.name
presente no fluxo do proxy de API.
<Variables> <Product>myproductvar.name</Product> </Variables>
É possível definir variáveis de fluxo personalizadas usando políticas como AssignMessage ou JavaScript.
<Product>
Especifica a variável que tem o nome do produto de API.
| Valor padrão | N/A |
| Obrigatório? | Opcional |
| Tipo | String |
| Elemento pai |
<Variables> |
| Elemento filho | Nenhum |
O elemento <Product> usa a seguinte sintaxe:
Sintaxe
<Product>VARIABLE_NAME</Product>
Exemplo
O exemplo a seguir recebe o nome do produto de API da variável de fluxo personalizada myproductvar.name presente no fluxo do proxy de API.
<Product>myproductvar.name</Product>
É possível definir variáveis de fluxo personalizadas usando políticas como AssignMessage ou JavaScript.
<FaultResponse>
Define a mensagem de resposta retornada ao cliente solicitante se uma falha for gerada. É possível personalizar as mensagens de resposta com base nos seus requisitos. Para mais informações sobre o elemento e todos os elementos filhos, consulte FaultResponse.
Variáveis de fluxo
Se você definir o atributo
ContinueOnError do elemento <MonetizationLimitsCheck> como verdadeiro, nenhuma falha será gerada. Nesse caso, as
variáveis de fluxo mint.limitsViolated, mint.isDeveloperSuspended e
mint.limitsPolicyError são definidas automaticamente. Essas variáveis podem ser usadas para
realizar mais tratamento de exceção, se necessário.