norme MonetizationLimitsCheck

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Panoramica

Le norme MonetizationLimitsCheck ti consentono di applicare limiti di monetizzazione alle chiamate API effettuate dallo sviluppatore dell'app.

Di seguito sono riportati alcuni casi in cui il criterio viene attivato:

  • Se uno sviluppatore di app che accede all'API monetizzata non ha acquistato un abbonamento a il prodotto API associato
  • L'account dello sviluppatore non ha un saldo sufficiente.
  • Lo sviluppatore ha superato il limite di volume delle transazioni.

Per informazioni su come collegare il criterio al proxy API, consulta Imporre i limiti di monetizzazione per i proxy API.

<MonetizationLimitsCheck> elemento

Specifica il criterio MonetizationLimitsCheck.

Valore predefinito N/D
Obbligatorio? Obbligatorio
Tipo Tipo complesso
Elemento principale N/D
Elementi secondari <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

La seguente tabella fornisce una descrizione generale degli elementi secondari di <MonetizationLimitsCheck>:

Elemento secondario Obbligatorio? Descrizione
<DisplayName> Facoltativo Un nome personalizzato per la norma.
<FaultResponse> Facoltativo Specifica il messaggio di risposta restituito al client richiedente quando l'errore viene rilevato.
<IgnoreUnresolvedVariables> Facoltativo Determina se l'elaborazione si interrompe quando viene rilevata una variabile non risolta.
<Variables> Facoltativo Specifica le variabili di flusso per verificare i limiti di monetizzazione.

L'elemento <MonetizationLimitsCheck> utilizza la seguente sintassi:

Sintassi

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

Esempio

L'esempio seguente mostra la definizione della norma 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>

Questo elemento ha i seguenti attributi comuni a tutti i criteri:

Attributo Predefinita Obbligatorio? Description (Descrizione)
name N/A Obbligatorio

Il nome interno del criterio. Il valore dell'attributo name può contenere lettere, numeri, spazi, trattini, trattini bassi e punti. Questo valore non può contenere più di 255 caratteri.

Facoltativamente, utilizza l'elemento <DisplayName> per etichettare il criterio nell'editor del proxy dell'interfaccia utente di gestione con un nome diverso in linguaggio naturale.

continueOnError false Facoltativo Imposta su "false" per restituire un errore quando un criterio non va a buon fine. Si tratta di un comportamento previsto per la maggior parte dei criteri. Impostalo su "true" per far sì che l'esecuzione del flusso continui anche dopo l'esito negativo di un criterio.
enabled true Facoltativo Imposta su "true" per applicare il criterio. Imposta su "false" per "disattivare" il criterio. Il criterio non verrà applicato anche se rimane collegato a un flusso.
async   false Deprecazione Questo attributo è obsoleto.

Riferimento elemento secondario

In questa sezione vengono descritti gli elementi secondari di <MonetizationLimitsCheck>.

<DisplayName>

Da utilizzare insieme all'attributo name per etichettare il criterio nell'editor proxy dell'interfaccia utente di gestione con un nome diverso e più naturale.

L'elemento <DisplayName> è comune a tutti i criteri.

Valore predefinito n/a
Obbligatorio? Facoltativo. Se ometti <DisplayName>, viene utilizzato il valore dell'attributo name del criterio
Tipo Stringa
Elemento principale <PolicyElement>
Elementi secondari Nessuno

La sintassi dell'elemento <DisplayName> è la seguente:

Sintassi

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

Esempio

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

L'elemento <DisplayName> non ha attributi o elementi secondari.

<IgnoreUnresolvedVariables>

Determina se l'elaborazione del criterio deve essere interrotta quando Apigee incontra una variabile non risolta.

Valore predefinito Vero
Obbligatorio? Facoltativo
Tipo Booleano
Elemento principale <MonetizationLimitsCheck>
Elementi secondari Nessuno

Per ignorare le variabili non risolte e continuare l'elaborazione, imposta il valore su true; altrimenti false. Il valore predefinito è true.

L'impostazione di <IgnoreUnresolvedVariables> su true è diversa dall'impostazione del valore dell'elemento <MonetizationLimitsCheck> Da continueOnError a true. Se imposti continueOnError su true, Apigee non ignora solo gli errori di variabile ma tutti gli errori.

L'elemento <IgnoreUnresolvedVariables> utilizza la seguente sintassi:

Sintassi

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

Esempio

L'esempio seguente imposta <IgnoreUnresolvedVariables> su false:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

Specifica le variabili di flusso da cui desideri recuperare durante l'esecuzione del criterio.

Puoi specificare solo l'elemento <Product> all'interno dell'elemento <Variables>. Apigee ottiene Il nome del prodotto API dalla variabile di flusso specificata nell'elemento <Product>. Se non specifichi l'elemento <Variables>, Apigee per impostazione predefinita riceve il nome del prodotto API dal Variabile di contesto apiproduct.name. Utilizzando il nome del prodotto API, Apigee ottiene piano tariffario corrispondente del prodotto ed esegue il controllo dei limiti di monetizzazione.

Valore predefinito N/D
Obbligatorio? Facoltativo
Tipo Tipo complesso
Elemento principale <MonetizationLimitsCheck>
Elementi secondari <Product>

L'elemento <Variables> utilizza la seguente sintassi:

Sintassi

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

Esempio

L'esempio seguente ottiene il nome del prodotto API dalla variabile di flusso personalizzato myproductvar.name presenti nel flusso del proxy API.

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

Puoi impostare variabili di flusso personalizzate utilizzando criteri come AssignMessage o JavaScript.

<Product>

Specifica la variabile con il nome del prodotto API.

Valore predefinito N/D
Obbligatorio? Facoltativo
Tipo Stringa
Elemento principale <Variables>
Elementi secondari Nessuno

L'elemento <Product> utilizza la seguente sintassi:

Sintassi

<Product>VARIABLE_NAME</Product>

Esempio

L'esempio seguente ottiene il nome del prodotto API dalla variabile di flusso personalizzato myproductvar.name presenti nel flusso del proxy API.

<Product>myproductvar.name</Product>

Puoi impostare variabili di flusso personalizzate utilizzando criteri come AssignMessage o JavaScript.

<FaultResponse>

Definisce il messaggio di risposta restituito al client richiedente se viene generato un errore. Puoi personalizzare la risposta i messaggi in base ai tuoi requisiti. Per ulteriori informazioni e tutti i relativi elementi secondari, consulta FaultResponse.

Variabili di flusso

Se imposti il parametro <MonetizationLimitsCheck> dell'elemento ContinueOnError su true, non viene rilevato alcun errore. In questo caso, variabili di flusso, mint.limitsViolated, mint.isDeveloperSuspended e mint.limitsPolicyError vengono impostati automaticamente. Queste variabili possono essere utilizzate per gestire ulteriormente le eccezioni, se necessario.