Política MonetizationLimitsCheck

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Visão geral

A política MonetizationLimitsCheck permite aplicar limites de monetização em 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 o 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 Aplique 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 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 deve 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 configurar o elemento <MonetizationLimitsCheck> continueOnError para true. Se você definir continueOnError como true, a Apigee ignorará as somente os erros de variáveis, 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 o entidades ou recursos durante a execução da política.

É possível especificar apenas o elemento <Product> no <Variables>. A Apigee 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, conseguirá o nome do produto da API da apiproduct.name. Ao usar o nome do produto da API, a Apigee o plano de preços correspondente para o produto e realiza 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 usa o nome do produto da API da variável de fluxo personalizado myproductvar.name. presentes 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 da API.

Valor padrão N/A
Obrigatório? Opcional
Tipo String
Elemento pai <Variables>
Elemento filho Nenhuma

O elemento <Product> usa a seguinte sintaxe:

Sintaxe

<Product>VARIABLE_NAME</Product>

Exemplo

O exemplo a seguir usa o nome do produto da API da variável de fluxo personalizado myproductvar.name. presentes 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 caso uma falha seja gerada. É possível personalizar a resposta mensagens com base nos seus requisitos. Para mais informações sobre o elemento e todos os seus elementos filhos, consulte FaultResponse.

Variáveis de fluxo

Se você definir o objeto <MonetizationLimitsCheck> ContinueOnError como verdadeiro, nenhuma falha é gerada. Nesse caso, o variáveis de fluxo, mint.limitsViolated, mint.isDeveloperSuspended, e mint.limitsPolicyError são definidas automaticamente. Essas variáveis podem ser usadas para e realizar o processamento adicional das exceções, se necessário.