Règle MonétisationLimitsCheck

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

Présentation

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

Voici quelques cas dans lesquels la règle est déclenchée :

  • Si un développeur d'applications qui accède à l'API monétisée n'a pas souscrit d'abonnement au produit d'API associé
  • Le compte du développeur n'est pas suffisamment approvisionné.
  • Le développeur a dépassé la limite du volume de transactions.

Pour savoir comment associer la règle à votre proxy d'API, consultez Appliquer des limites de monétisation au niveau des proxys d'API.

<MonetizationLimitsCheck> élément

Spécifie la règle MonetizationLimitsCheck.

Valeur par défaut N/A
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 Obligatoire ? Description
<DisplayName> Facultatif Nom personnalisé de la règle.
<FaultResponse> Facultatif Spécifie le message de réponse renvoyé au client à l'origine de la requête lorsque l'erreur est généré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 à vérifier pour 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>

Cet élément possède les attributs suivants qui sont communs à toutes les règles :

Attribut Par défaut Obligatoire ? Description
name N/A Obligatoire

Nom interne de la règle. La valeur de l'attribut name peut contenir des lettres, des chiffres, des espaces, des tirets, des traits de soulignement et des points. Cette valeur ne peut pas dépasser 255 caractères.

Vous pouvez également utiliser l'élément <DisplayName> pour ajouter un libellé à la règle dans l'éditeur de proxy de l'interface utilisateur de gestion avec un nom différent, en langage naturel.

continueOnError faux Facultatif Défini sur "false" pour renvoyer une erreur en cas d'échec d'une règle. Il s'agit du comportement attendu pour la plupart des règles. Défini sur "true" pour que l'exécution du flux se poursuive même après l'échec d'une règle.
enabled vrai Facultatif Défini sur "true" pour appliquer la règle. Défini sur "false" pour "désactiver" la règle. La règle ne sera pas appliquée même si elle reste associée à un flux.
async   faux Obsolète Cet attribut est obsolète.

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

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

<DisplayName>

Utilisez-le, en plus de l'attribut name, pour appliquer un libellé à la règle dans l'éditeur de proxys de l'interface de gestion en utilisant un nom différent et plus naturel.

L'élément <DisplayName> est commun à toutes les règles.

Valeur par défaut N/A
Requis ? Facultatif. Si vous omettez <DisplayName>, la valeur de l'attribut name de la règle est utilisée.
Type Chaîne
Élément parent <PolicyElement>
Éléments enfants Aucun

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

Syntaxe

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

Exemple

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

L'élément <DisplayName> ne comporte aucun attribut ni élément enfant.

<IgnoreUnresolvedVariables>

Détermine si le traitement de la règle 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 est différent de définir continueOnError de l'élément <MonetizationLimitsCheck> sur true. Si vous définissez continueOnError sur true, Apigee ignore non seulement les erreurs de variable, mais aussi 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 noms d'entités ou de ressources lors de l'exécution de la règle.

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 de la variable de contexte apiproduct.name. En utilisant le nom du produit d'API, Apigee obtient le forfait correspondant pour le produit et effectue la vérification des limites de monétisation.

Valeur par défaut N/A
Obligatoire ? 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 du produit d'API à partir de la variable de flux personnalisée myproductvar.name présente 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 contenant le nom du produit d'API.

Valeur par défaut N/A
Obligatoire ? Facultatif
Type Chaîne
Élément parent <Variables>
Éléments enfants Aucun

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

Syntaxe

<Product>VARIABLE_NAME</Product>

Exemple

L'exemple suivant obtient le nom du produit d'API à partir de la variable de flux personnalisée myproductvar.name présente 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 à l'origine de la requête si une erreur est générée. Vous pouvez personnaliser les messages de réponse en fonction de vos besoins. Pour en savoir plus sur l' élément et tous ses éléments enfants, consultez FaultResponse.

Variables de flux

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