Política MonetizationLimitsCheck

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Descripción general

La política MonetizationLimitsCheck te permite aplicar de manera forzosa límites de monetización a las llamadas a la API que realiza el desarrollador de la app.

Estos son algunos de los casos en los que se activa la política:

  • Si un desarrollador de apps que accede a la API monetizada no compró una suscripción al producto de API asociado
  • La cuenta del desarrollador no tiene saldo suficiente.
  • El desarrollador superó el límite de volumen de transacciones.

Si deseas obtener información para adjuntar la política al proxy de API, consulta Aplica límites de monetización en proxies de API.

Elemento <MonetizationLimitsCheck>

Especifica la política MonetizationLimitsCheck.

Valor predeterminado No disponible
¿Es obligatorio? Obligatorio
Tipo Tipo complejo
Elemento principal No disponible
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 produce 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>

Este elemento tiene los siguientes atributos que son comunes a todas las políticas:

Atributo Predeterminada (obligatorio) Descripción
name N/A Obligatorio

El nombre interno de la política. El valor del atributo name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

De forma opcional, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

continueOnError falso Opcional Si la estableces como "false", muestra un error cuando falla una política. Este es el comportamiento previsto para la mayoría de las políticas. Si su valor es "true", la ejecución del flujo continuará incluso después de que falle la política.
enabled true Opcional Si estableces la política como "true", la aplicarás. Si la estableces como "false", se desactivará la política. La política no se aplicará, incluso si permanece conectada a un flujo.
async   falso Funciones obsoletas Este atributo dejó de estar disponible.

Referencia del elemento secundario

En esta sección, se describen los elementos secundarios de <MonetizationLimitsCheck>.

<DisplayName>

Se usan además del atributo name para etiquetar la política en el editor de proxy de la IU de administración con un nombre de lenguaje natural diferente.

El elemento <DisplayName> es común a todas las políticas.

Valor predeterminado N/A
¿Es obligatorio? Opcional. Si omites <DisplayName>, se usa el valor del atributo name de la política.
Tipo String
Elemento principal <PolicyElement>
Elementos secundarios Ninguno

El elemento <DisplayName> usa la siguiente sintaxis:

Sintaxis

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

Ejemplo

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

El elemento <DisplayName> no tiene atributos ni elementos secundarios.

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

Para ignorar las variables sin resolver y continuar con el procesamiento, establece el valor en true; de lo contrario, en false. El valor predeterminado es true.

Establecer <IgnoreUnresolvedVariables> en true no es lo mismo que establecer el continueOnError del elemento <MonetizationLimitsCheck> en true. Si configuras continueOnError como 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 desde las que deseas recuperar los nombres de las entidades o los recursos durante la ejecución de la política.

Solo puedes especificar el elemento <Product> dentro del elemento <Variables>. Apigee obtiene el nombre del producto de la 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 la API de la variable de contexto apiproduct.name. Con el nombre del producto de la 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 No disponible
¿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 la API de la variable de flujo personalizada myproductvar.name presente en el flujo de proxy de API.

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

Puedes establecer variables de flujo personalizadas con políticas como AssignMessage o JavaScript.

<Product>

Especifica la variable que tiene el nombre de producto de la API.

Valor predeterminado No disponible
¿Es obligatorio? Opcional
Tipo String
Elemento principal <Variables>
Elementos secundarios Ninguna

El elemento <Product> usa la siguiente sintaxis:

Sintaxis

<Product>VARIABLE_NAME</Product>

Ejemplo

En el siguiente ejemplo, se obtiene el nombre del producto de la API de la variable de flujo personalizada myproductvar.name presente en el flujo de proxy de API.

<Product>myproductvar.name</Product>

Puedes establecer 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 produce 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 configuras el atributo ContinueOnError del elemento <MonetizationLimitsCheck> como verdadero, no se genera ningún error. En este caso, las variables de flujo mint.limitsViolated, mint.isDeveloperSuspended y mint.limitsPolicyError se configuran automáticamente. Estas variables se pueden usar para realizar un control de excepciones adicional si es necesario.