Política MonetizationLimitsCheck

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 name pode conter letras, números, espaços, hifens, sublinhados e pontos. Esse valor não pode exceder 255 caracteres.

Opcionalmente, use o elemento <DisplayName> para rotular a política no editor de proxy da IU de gerenciamento com um nome de linguagem natural diferente.

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.