Política MonetizationLimitsCheck

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Descripción general

La política MonetizationLimitsCheck te permite aplicar límites de monetización en las llamadas a la API que realices. por 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 a el producto de API asociado
  • 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 los proxies de API.

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 devuelto al cliente solicitante cuando se generará una 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 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.

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> como true no es lo mismo que establecer el elemento <MonetizationLimitsCheck> De continueOnError a true. Si configuras continueOnError como true, Apigee ignora lo siguiente: solo los errores de variable pero 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 quieres recuperar el de entidades o recursos durante la ejecución de la política.

Solo puedes especificar el elemento <Product> dentro del elemento <Variables>. Apigee obtiene Es el nombre del producto de la API a partir de la variable de flujo especificada en el elemento <Product>. Si no especifiques el elemento <Variables>, Apigee obtiene, de forma predeterminada, el nombre del producto de API del Variable de contexto apiproduct.name. Cuando usas el nombre del producto de API, Apigee obtiene el plan de tarifas correspondiente del 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 la API de la variable de flujo personalizado myproductvar.name. presente en el flujo del proxy de API.

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

Puedes configurar variables de flujo personalizadas mediante 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 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 personalizado myproductvar.name. presente en el flujo del proxy de API.

<Product>myproductvar.name</Product>

Puedes configurar variables de flujo personalizadas mediante 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 la respuesta mensajes según tus requisitos. Para obtener más información sobre el y todos sus elementos secundarios, consulta FaultResponse.

Variables de flujo

Si configuras el atributo <MonetizationLimitsCheck> ContinueOnError como verdadero, no se genera ningún error. En este caso, el de flujo, mint.limitsViolated, mint.isDeveloperSuspended y Las mint.limitsPolicyError se configuran automáticamente. Estas variables se pueden usar para realizar más control de excepciones si es necesario.