Política MonetizationLimitsCheck

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Visão geral

Com a política MonetizationLimitsCheck, é possível impor limites de monetização às suas chamadas de API feitas pelo desenvolvedor do app.

Estes são alguns dos casos em que a política é acionada:

  • 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 informações sobre 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 a serem verificadas quanto aos 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 Nenhuma

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 True
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 o continueOnError do elemento <MonetizationLimitsCheck> como true. Se você definir continueOnError como true, a Apigee ignorará apenas os erros de variáveis e 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 de onde você quer buscar os nomes da entidade ou dos recursos durante a execução da política.

Só é possível especificar o elemento <Product> no <Variables>. A Apigee recebe o nome do produto da API da variável de fluxo especificada no elemento <Product>. Se você não especificar o elemento <Variables>, a Apigee, por padrão, receberá o nome do produto da API da variável de contexto apiproduct.name. Ao usar o nome do produto da API, a Apigee recebe o plano de tarifa correspondente e executa a verificação dos 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 da API da variável de fluxo personalizado myproductvar.name presente no fluxo de 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 da 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 da API da variável de fluxo personalizado myproductvar.name presente no fluxo de 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. As mensagens de resposta podem ser personalizadas 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 lidar com exceções, se necessário.