MonetizationLimitsCheck-Richtlinie

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Überblick

Mit der Richtlinie „MonetarisierungLimitsCheck“ können Sie die Monetarisierungsbeschränkungen für Ihre API-Aufrufe durch den App-Entwickler erzwingen.

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

  • Wenn ein App-Entwickler, der auf die monetarisierte API zugreift, kein Abo für das zugehörige API-Produkt erworben hat
  • Das Guthaben auf dem Konto des Entwicklers ist unzureichend.
  • Der Entwickler hat das Transaktionsvolumen überschritten.

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

Element <MonetizationLimitsCheck>

Legt die MonetizationLimitsCheck-Richtlinie fest.

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 der Fehler ausgelöst wird.
<IgnoreUnresolvedVariables> Optional Bestimmt, ob die Verarbeitung beendet wird, wenn eine nicht aufgelöste Variable erkannt wird.
<Variables> Optional Gibt die Ablaufvariablen 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 Richtliniendefinition „MonetarisierungLimitsCheck“:

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

Dieses Element hat folgende Attribute, die allen Richtlinien gemeinsam sind:

Attribut Standard Erforderlich? Beschreibung
name Erforderlich

Der interne Name der Richtlinie. Der Wert des Attributs name kann Buchstaben, Ziffern, Leerzeichen, Bindestriche, Unterstriche und Punkte enthalten. Dieser Wert darf 255 Zeichen nicht überschreiten.

Optional können Sie das Element <DisplayName> verwenden, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen Namen in einer natürlichen Sprache zu versehen.

continueOnError falsch Optional Ist das Element auf "false" gesetzt, wird ein Fehler zurückgegeben, wenn eine Richtlinie fehlschlägt. Dies ist für die meisten Richtlinien das erwartete Verhalten. Ist das Element auf "true" gesetzt, wird die Ausführung des Ablaufs auch nach dem Fehlschlagen einer Richtlinie fortgesetzt.
enabled wahr Optional Auf "true" setzen, um die Richtlinie durchzusetzen. Auf "false" setzen, um die Richtlinie zu "deaktivieren". Die Richtlinie wird nicht durchgesetzt, selbst wenn sie mit einem Ablauf verknüpft ist.
async   falsch Eingestellte Funktionen Dieses Attribut wurde verworfen.

Verweis auf untergeordnetes Element

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

<DisplayName>

Wird zusätzlich zum Attribut name verwendet, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen, natürlicher klingenden Namen zu versehen.

Das Element <DisplayName> ist für alle Richtlinien gleich.

Standardwert
Erforderlich/Optional? Optional. Wenn Sie <DisplayName> weglassen, wird der Wert des Attributs name der Richtlinie verwendet.
Typ String
Übergeordnetes Element <PolicyElement>
Untergeordnete Elemente Keine

Das <DisplayName>-Element verwendet die folgende Syntax:

Syntax

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

Beispiel

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

Das <DisplayName>-Element hat keine Attribute oder untergeordneten Elemente.

<IgnoreUnresolvedVariables>

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

Standardwert Richtig
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 von continueOnError des <MonetizationLimitsCheck>-Elements auf true. Wenn Sie continueOnError auf true setzen, ignoriert Apigee nicht 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, von denen Sie die Entitäts- oder Ressourcennamen während der Richtlinienausführung abrufen möchten.

Sie können nur das Element <Product> innerhalb des Elements <Variables> angeben. Apigee ruft den API-Produktnamen von der im Element <Product> angegebenen Ablaufvariablen ab. Wenn Sie das Element <Variables> nicht angeben, ruft Apigee standardmäßig den API-Produktnamen aus der Kontextvariable apiproduct.name ab. Über den API-Produktnamen ruft Apigee den entsprechenden Tarifplan für das Produkt ab 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 Ablaufvariablen myproductvar.name in Ihrem API-Proxy-Ablauf abgerufen.

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

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

<Product>

Gibt die Variable mit dem API-Produktnamen an.

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

Das <Product>-Element verwendet die folgende Syntax:

Syntax

<Product>VARIABLE_NAME</Product>

Beispiel

Im folgenden Beispiel wird der API-Produktname aus der benutzerdefinierten Ablaufvariablen myproductvar.name in Ihrem API-Proxy-Ablauf abgerufen.

<Product>myproductvar.name</Product>

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

<FaultResponse>

Definiert die Antwortnachricht, die an den anfragenden Client zurückgegeben wird, wenn ein Fehler ausgelöst wird. Sie können die Antwortnachrichten je nach Ihren Anforderungen anpassen. Weitere Informationen zu diesem Element und allen untergeordneten Elementen finden Sie unter FaultResponse.

Ablaufvariablen

Wenn Sie das Attribut ContinueOnError des Elements <MonetizationLimitsCheck> auf „true“ setzen, wird kein Fehler ausgelöst. In diesem Fall werden die Flussvariablen mint.limitsViolated, mint.isDeveloperSuspended und mint.limitsPolicyError automatisch festgelegt. Diese Variablen können bei Bedarf zur weiteren Ausnahmebehandlung verwendet werden.