Vous consultez la documentation d'Apigee Edge.
Consultez la
documentation Apigee X. en savoir plus
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 de l'application.
Voici certains des cas de déclenchement de la règle:
- 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 solde du compte du développeur est insuffisant.
- Le développeur a dépassé la limite de volume de transactions.
Pour savoir comment associer la règle à votre proxy d'API, consultez Appliquer des limites de monétisation sur les proxys d'API.
Élément <MonetizationLimitsCheck>
Spécifie la règle MonetizationLimitsCheck.
Valeur par défaut | N/A |
Obligatoire ? | Obligatoire |
Type | Type complexe |
Élément parent | N/A |
É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 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 permettant de 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 illustre 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 Vous pouvez également utiliser l'élément |
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 continuer le traitement, définissez la valeur sur true
. Sinon, définissez la valeur sur false
. La valeur par défaut est true
.
La définition de <IgnoreUnresolvedVariables>
sur true
est différente de celle de l'élément continueOnError
de l'élément <MonetizationLimitsCheck>
sur true
. Si vous définissez continueOnError
sur true
, Apigee ignore non seulement les erreurs de variable, mais également 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é 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 de produit d'API à partir de la variable de contexte apiproduct.name
. Grâce à ce nom, Apigee obtient le plan tarifaire correspondant au produit et vérifie les limites de monétisation.
Valeur par défaut | N/A |
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é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 portant le nom de produit API.
Valeur par défaut | N/A |
Requis ? | 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 de 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 demandeur en cas d'erreur. Vous pouvez personnaliser les messages de réponse en fonction de vos besoins. Pour en savoir plus sur l'élément et sur 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 définies automatiquement. Ces variables peuvent être utilisées pour effectuer un traitement plus poussé des exceptions, si nécessaire.