Règle MonétisationLimitsCheck

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Présentation

La règle MonetizationLimitsCheck vous permet d'appliquer des limites de monétisation à vos appels d'API effectués. par le développeur de l'application.

Voici quelques cas où la règle est déclenchée:

  • Si le développeur d'une application accédant à l'API monétisée n'a pas souscrit d'abonnement à le produit API associé
  • Le solde du compte du développeur est insuffisant.
  • Le développeur a dépassé la limite du volume de transactions.

Pour plus d'informations sur l'association de la stratégie à votre proxy d'API, voir Appliquez les limites de monétisation sur les proxys d'API.

Élément <MonetizationLimitsCheck>

Spécifie la règle MonetizationLimitsCheck.

Valeur par défaut ND
Obligatoire ? Obligatoire
Type Type complexe
Élément parent ND
Éléments enfants <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

Le tableau suivant fournit une description détaillée des éléments enfants de <MonetizationLimitsCheck> :

Élément enfant Requis ? Description
<DisplayName> Facultatif Nom personnalisé de la règle.
<FaultResponse> Facultatif Spécifie le message de réponse renvoyé au client demandeur lorsque la faille est identifiée.
<IgnoreUnresolvedVariables> Facultatif Détermine si le traitement s'arrête lorsqu'une variable non résolue est rencontrée.
<Variables> Facultatif Spécifie les variables de flux pour vérifier les limites de monétisation.

L'élément <MonetizationLimitsCheck> utilise la syntaxe suivante :

Syntaxe

<?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>

Exemple

L'exemple suivant montre la définition de la règle 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>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails.
enabled true Optional Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

Référence d'élément enfant

Cette section décrit les éléments enfants de <MonetizationLimitsCheck>.

<DisplayName>

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, more natural-sounding name.

The <DisplayName> element is common to all policies.

Default Value n/a
Required? Optional. If you omit <DisplayName>, the value of the policy's name attribute is used
Type String
Parent Element <PolicyElement>
Child Elements None

The <DisplayName> element uses the following syntax:

Syntax

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

Example

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

The <DisplayName> element has no attributes or child elements.

<IgnoreUnresolvedVariables>

Détermine si le traitement de la stratégie doit s'arrêter lorsqu'Apigee rencontre une variable non résolue.

Valeur par défaut Vrai
Obligatoire ? Facultatif
Type Booléen
Élément parent <MonetizationLimitsCheck>
Éléments enfants Aucun

Pour ignorer les variables non résolues et poursuivre le traitement, définissez la valeur sur true. sinon false. La valeur par défaut est true.

Définir <IgnoreUnresolvedVariables> sur true n'est pas la même chose que définir l'élément <MonetizationLimitsCheck> De continueOnError à true. Si vous définissez continueOnError sur true, Apigee ignore pas seulement les erreurs de variable, mais toutes les erreurs.

L'élément <IgnoreUnresolvedVariables> utilise la syntaxe suivante :

Syntaxe

<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>

Exemple

L'exemple suivant définit <IgnoreUnresolvedVariables> sur false :

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

Spécifie les variables de flux à partir desquelles vous souhaitez extraire les d'entité ou de ressource lors de l'exécution de la stratégie.

Vous ne pouvez spécifier que l'élément <Product> dans l'élément <Variables>. Apigee obtient le nom du produit d'API à partir de la variable de flux spécifiée dans l'élément <Product>. Si vous ne spécifiez pas l'élément <Variables>, Apigee obtient par défaut le nom du produit d'API à partir du Variable de contexte apiproduct.name. En utilisant le nom du produit d'API, Apigee obtient le plan tarifaire correspondant pour le produit et vérifie les limites de monétisation.

Valeur par défaut ND
Requis ? Facultatif
Type Type complexe
Élément parent <MonetizationLimitsCheck>
Éléments enfants <Product>

L'élément <Variables> utilise la syntaxe suivante :

Syntaxe

<Variables>
    <Product>VARIABLE_NAME</Product>
</Variables>

Exemple

L'exemple suivant obtient le nom de produit d'API à partir de la variable de flux personnalisée myproductvar.name présentes dans votre flux de proxy d'API.

<Variables>
    <Product>myproductvar.name</Product>
</Variables>

Vous pouvez définir des variables de flux personnalisées à l'aide de règles telles que AssignMessage ou JavaScript.

<Product>

Spécifie la variable ayant le nom de produit d'API.

Valeur par défaut ND
Requis ? Facultatif
Type Chaîne
Élément parent <Variables>
Éléments enfants Aucune

L'élément <Product> utilise la syntaxe suivante :

Syntaxe

<Product>VARIABLE_NAME</Product>

Exemple

L'exemple suivant obtient le nom de produit d'API à partir de la variable de flux personnalisée myproductvar.name présentes dans votre flux de proxy d'API.

<Product>myproductvar.name</Product>

Vous pouvez définir des variables de flux personnalisées à l'aide de règles telles que AssignMessage ou JavaScript.

<FaultResponse>

Définit le message de réponse renvoyé au client demandeur si une erreur est identifiée. Vous pouvez personnaliser la réponse en fonction de vos besoins. Pour en savoir plus sur la et tous ses éléments enfants, consultez FaultResponse.

Variables de flux

Si vous définissez la valeur de l'élément <MonetizationLimitsCheck> ContinueOnError sur "true", aucune erreur n'est générée. Dans ce cas, variables de flux, mint.limitsViolated, mint.isDeveloperSuspended et mint.limitsPolicyError sont automatiquement définis. Ces variables peuvent être utilisées pour effectuer un traitement supplémentaire des exceptions si nécessaire.