Norme di MonetizeLimitsCheck

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Panoramica

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

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

  • Se uno sviluppatore di app che accede all'API monetizzato non ha acquistato un abbonamento al prodotto API associato
  • Il saldo dell'account dello sviluppatore è insufficiente.
  • Lo sviluppatore ha superato il limite di volume di transazioni.

Per informazioni su come collegare il criterio al proxy API, consulta la pagina Applicare limiti di monetizzazione sui proxy API.

Elemento <MonetizationLimitsCheck>

Specifica la norma MonetizationLimitsCheck.

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

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

Elemento secondario Campo obbligatorio? Descrizione
<DisplayName> Facoltativo Un nome personalizzato per la norma.
<FaultResponse> Facoltativo Specifica il messaggio di risposta restituito al client che ha inviato la richiesta quando viene generato l'errore.
<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.

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

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 per l'elemento secondario

Questa sezione descrive gli elementi secondari di <MonetizationLimitsCheck>.

<DisplayName>

Utilizzalo in aggiunta all'attributo name per etichettare il criterio nell'editor proxy dell'interfaccia utente di gestione con un nome diverso e dal suono più naturale.

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

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

L'elemento <DisplayName> utilizza la seguente sintassi:

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 rileva una variabile non risolta.

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

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

L'impostazione di <IgnoreUnresolvedVariables> su true è diversa dall'impostazione di continueOnError dell'elemento <MonetizationLimitsCheck> su true. Se imposti continueOnError su true, Apigee ignora non solo gli errori delle variabili, ma anche tutti gli errori.

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

Sintassi

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

Esempio

L'esempio seguente imposta <IgnoreUnresolvedVariables> su false:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

Specifica le variabili di flusso da cui vuoi recuperare i nomi delle entità o delle risorse 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 dalla variabile di contesto apiproduct.name. Utilizzando il nome del prodotto API, Apigee ottiene il piano tariffario corrispondente per il prodotto ed esegue il controllo dei limiti di monetizzazione.

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

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

Sintassi

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

Esempio

L'esempio seguente ottiene il nome del prodotto API dalla variabile di flusso personalizzata myproductvar.name presente nel flusso 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/A
Obbligatorio? Facoltativo
Digitare Stringa
Elemento principale <Variables>
Elementi secondari Nessuno

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

Sintassi

<Product>VARIABLE_NAME</Product>

Esempio

L'esempio seguente ottiene il nome del prodotto API dalla variabile di flusso personalizzata myproductvar.name presente nel flusso 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 in caso di errore. Puoi personalizzare i messaggi di risposta in base alle tue esigenze. Per ulteriori informazioni sull'elemento e su tutti i relativi elementi secondari, consulta FaultResponse.

Variabili di flusso

Se imposti l'attributo ContinueOnError dell'elemento <MonetizationLimitsCheck> su true, non viene generato alcun errore. In questo caso, le variabili di flusso mint.limitsViolated, mint.isDeveloperSuspended e mint.limitsPolicyError vengono impostate automaticamente. Queste variabili possono essere utilizzate per eseguire un'ulteriore gestione delle eccezioni, se necessario.