MonetizationLimitsCheck-Richtlinie

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

Übersicht

Mit der Richtlinie „MonetizationLimitsCheck“ kannst du Monetarisierungslimits für deine API-Aufrufe erzwingen vom App-Entwickler.

Die Richtlinie wird unter anderem in folgenden Fällen ausgelöst:

  • Wenn ein App-Entwickler, der auf die monetarisierte API zugreift, kein Abo für verknüpftes API-Produkt
  • Das Guthaben auf dem Entwicklerkonto ist nicht ausreichend.
  • Der Entwickler hat das Limit für das Transaktionsvolumen überschritten.

Informationen zum Anhängen der Richtlinie an Ihren API-Proxy finden Sie unter Monetarisierungslimits für API-Proxys erzwingen

Element <MonetizationLimitsCheck>

Gibt die Richtlinie „MonetizationLimitsCheck“ an.

Standardwert
Erforderlich? Erforderlich
Typ Komplexer Typ
Übergeordnetes Element
Untergeordnete Elemente <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

Die folgende Tabelle enthält eine allgemeine Beschreibung der untergeordneten Elemente von <MonetizationLimitsCheck>:

Untergeordnetes Element Erforderlich? Beschreibung
<DisplayName> Optional Ein benutzerdefinierter Name für die Richtlinie.
<FaultResponse> Optional Gibt die Antwortnachricht an, die an den anfragenden Client zurückgegeben wird, wenn wird der Fehler ausgegeben.
<IgnoreUnresolvedVariables> Optional Bestimmt, ob die Verarbeitung beendet wird, wenn eine nicht aufgelöste Variable erkannt wird.
<Variables> Optional Gibt die Flussvariablen an, die auf die Monetarisierungslimits geprüft werden sollen.

Das <MonetizationLimitsCheck>-Element verwendet die folgende Syntax:

Syntax

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

Beispiel

Das folgende Beispiel zeigt die Definition der Richtlinie „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.

Verweis auf untergeordnetes Element

In diesem Abschnitt werden die untergeordneten Elemente von <MonetizationLimitsCheck> beschrieben.

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

Bestimmt, ob die Verarbeitung der Richtlinie beendet werden soll, wenn Apigee auf eine nicht aufgelöste Variable stößt.

Standardwert True
Erforderlich? Optional
Typ Boolesch
Übergeordnetes Element <MonetizationLimitsCheck>
Untergeordnete Elemente Keine

Wenn Sie nicht aufgelöste Variablen ignorieren und die Verarbeitung fortsetzen möchten, setzen Sie den Wert auf true. andernfalls false. Der Standardwert ist true.

Das Festlegen von <IgnoreUnresolvedVariables> auf true unterscheidet sich vom Festlegen des <MonetizationLimitsCheck>-Elements. continueOnError auf true. Wenn Sie continueOnError auf true setzen, ignoriert Apigee: nur die Variablenfehler, sondern alle Fehler.

Das <IgnoreUnresolvedVariables>-Element verwendet die folgende Syntax:

Syntax

<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>

Beispiel

Im folgenden Beispiel wird für <IgnoreUnresolvedVariables> der Wert false festgelegt:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

Gibt die Flussvariablen an, aus denen Sie die Entitäts- oder Ressourcennamen.

Du kannst nur das Element <Product> innerhalb des Elements <Variables> angeben. Apigee erhält API-Produktname aus der im <Product>-Element angegebenen Flussvariablen Wenn Sie Wenn Sie das Element <Variables> nicht angeben, ruft Apigee standardmäßig den API-Produktnamen aus dem Kontextvariable apiproduct.name. Durch die Verwendung des API-Produktnamens erhält Apigee die für das Produkt den entsprechenden Preisplan und führt die Überprüfung der Monetarisierungslimits durch.

Standardwert
Erforderlich? Optional
Typ Komplexer Typ
Übergeordnetes Element <MonetizationLimitsCheck>
Untergeordnete Elemente <Product>

Das <Variables>-Element verwendet die folgende Syntax:

Syntax

<Variables>
    <Product>VARIABLE_NAME</Product>
</Variables>

Beispiel

Im folgenden Beispiel wird der API-Produktname aus der benutzerdefinierten Ablaufvariable myproductvar.name abgerufen. die in Ihrem API-Proxy-Ablauf vorhanden sind.

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

Sie können mithilfe von Richtlinien wie AssignMessage oder JavaScript benutzerdefinierte Flussvariablen festlegen.

<Product>

Gibt die Variable mit dem API-Produktnamen an.

Standardwert
Erforderlich? Optional
Typ String
Übergeordnetes Element <Variables>
Untergeordnete Elemente

Das <Product>-Element verwendet die folgende Syntax:

Syntax

<Product>VARIABLE_NAME</Product>

Beispiel

Im folgenden Beispiel wird der API-Produktname aus der benutzerdefinierten Ablaufvariable myproductvar.name abgerufen. die in Ihrem API-Proxy-Ablauf vorhanden sind.

<Product>myproductvar.name</Product>

Sie können mithilfe von Richtlinien wie AssignMessage oder JavaScript benutzerdefinierte Flussvariablen festlegen.

<FaultResponse>

Definiert die Antwortnachricht, die bei Auftreten eines Fehlers an den anfordernden Client zurückgegeben wird. Du kannst die Antwort anpassen Nachrichten an Ihre Anforderungen anpassen. Weitere Informationen zur und allen untergeordneten Elementen erhalten Sie unter FaultResponse.

Ablaufvariablen

Wenn Sie für das Element <MonetizationLimitsCheck> den Wert Attribut ContinueOnError auf „true“ gesetzt, es wird kein Fehler ausgelöst. In diesem Fall Flussvariablen, mint.limitsViolated, mint.isDeveloperSuspended und mint.limitsPolicyError festgelegt. Mit diesen Variablen können Sie bei Bedarf weitere Ausnahmen verarbeiten.