Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Descripción general
La política MonetizationLimitsCheck te permite aplicar límites de monetización en las llamadas a la API que realiza el desarrollador de apps.
Algunos de los casos en los que se activa la política son los siguientes:
- Si un desarrollador de apps que accede a la API monetizada no compró una suscripción para el producto asociado de la API
- La cuenta del desarrollador no tiene saldo suficiente.
- El desarrollador superó el límite de volumen de transacciones.
Para obtener información sobre cómo adjuntar la política a tu proxy de API, consulta Aplica límites de monetización en proxies de API de forma forzosa.
Elemento <MonetizationLimitsCheck>
Especifica la política MonetizationLimitsCheck.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Obligatorio |
| Tipo | Tipo complejo |
| Elemento principal | N/A |
| Elementos secundarios |
<DisplayName><FaultResponse><IgnoreUnresolvedVariables><Variables> |
En la siguiente tabla, se proporciona una descripción de alto nivel de los elementos secundarios de <MonetizationLimitsCheck>.
| Elemento secundario | ¿Es obligatorio? | Descripción |
|---|---|---|
<DisplayName> |
Opcional | Un nombre personalizado para la política |
<FaultResponse> |
Opcional | Especifica el mensaje de respuesta que se muestra al cliente solicitante cuando se genera la falla. |
<IgnoreUnresolvedVariables> |
Opcional | Determina si el procesamiento se detiene cuando se encuentra una variable sin resolver. |
<Variables> |
Opcional | Especifica las variables de flujo para verificar los límites de monetización. |
El elemento <MonetizationLimitsCheck> usa la siguiente sintaxis:
Sintaxis
<?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>
Ejemplo
En el siguiente ejemplo, se muestra la definición de la 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>
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 Optionally, use the |
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. |
Referencia del elemento secundario
En esta sección, se describen los elementos secundarios 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>
Determina si el procesamiento de la política debe detenerse cuando Apigee encuentra una variable sin resolver.
| Valor predeterminado | True |
| ¿Es obligatorio? | Opcional |
| Tipo | Booleano |
| Elemento principal |
<MonetizationLimitsCheck> |
| Elementos secundarios | Ninguno |
Para ignorar las variables sin resolver y continuar con el procesamiento, establece el valor en true;
de lo contrario false. El valor predeterminado es true.
Establecer <IgnoreUnresolvedVariables> en true es diferente de establecer continueOnError del elemento <MonetizationLimitsCheck> en true. Si estableces continueOnError en true, Apigee ignora no
solo los errores de las variables, sino todos los errores.
El elemento <IgnoreUnresolvedVariables> usa la siguiente sintaxis:
Sintaxis
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
Ejemplo
En el siguiente ejemplo, se configura <IgnoreUnresolvedVariables> como false:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
Especifica las variables de flujo de las que deseas recuperar los nombres de la entidad o el recurso durante la ejecución de la política.
Solo puedes especificar el <Product> elemento dentro del <Variables> elemento. Apigee obtiene
el nombre del producto de API de la variable de flujo especificada en el elemento <Product>. Si no especificas el elemento <Variables>, Apigee obtiene de forma predeterminada el nombre del producto de API de la variable de contexto apiproduct.name. Cuando usa el nombre del producto de API, Apigee obtiene el plan de tarifas correspondiente para el producto y realiza la verificación de los límites de monetización.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Opcional |
| Tipo | Tipo complejo |
| Elemento principal |
<MonetizationLimitsCheck> |
| Elementos secundarios |
<Product> |
El elemento <Variables> usa la siguiente sintaxis:
Sintaxis
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>Ejemplo
En el siguiente ejemplo, se obtiene el nombre del producto de API de la variable de flujo personalizada myproductvar.name presente en el flujo de tu proxy de API.
<Variables> <Product>myproductvar.name</Product> </Variables>
Puedes configurar variables de flujo personalizadas con políticas como AssignMessage o JavaScript.
<Product>
Especifica la variable que tiene el nombre del producto de API.
| Valor predeterminado | N/A |
| ¿Es obligatorio? | Opcional |
| Tipo | String |
| Elemento principal |
<Variables> |
| Elementos secundarios | Ninguno |
El elemento <Product> usa la siguiente sintaxis:
Sintaxis
<Product>VARIABLE_NAME</Product>
Ejemplo
En el siguiente ejemplo, se obtiene el nombre del producto de API de la variable de flujo personalizada myproductvar.name presente en el flujo de tu proxy de API.
<Product>myproductvar.name</Product>
Puedes configurar variables de flujo personalizadas con políticas como AssignMessage o JavaScript.
<FaultResponse>
Define el mensaje de respuesta que se muestra al cliente solicitante si se genera una falla. Puedes personalizar los mensajes de respuesta según tus requisitos. Para obtener más información sobre el elemento y todos sus elementos secundarios, consulta FaultResponse.
Variables de flujo
Si estableces el atributo
ContinueOnError del elemento <MonetizationLimitsCheck> como verdadero, no se genera ninguna falla. En este caso, las
variables de flujo, mint.limitsViolated, mint.isDeveloperSuspended y
mint.limitsPolicyError, se establecen automáticamente. Estas variables se pueden usar para
realizar un manejo de excepciones adicional si es necesario.