Norme relative a MonetizationLimitsCheck

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Panoramica

La policy MonetizationLimitsCheck consente di applicare limiti di monetizzazione alle chiamate API effettuate dallo sviluppatore di app.

Alcuni dei casi in cui viene attivata la policy sono:

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

Per informazioni su come collegare la policy al proxy API, consulta Applicare limiti di monetizzazione ai proxy API.

Elemento <MonetizationLimitsCheck>

Specifica la policy MonetizationLimitsCheck.

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

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

Elemento secondario Obbligatorio? Descrizione
<DisplayName> Facoltativo Un nome personalizzato per la policy.
<FaultResponse> Facoltativo Specifica il messaggio di risposta restituito al client richiedente 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.

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 policy 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 agli elementi secondari

Questa sezione descrive gli elementi secondari di <MonetizationLimitsCheck>.

<DisplayName>

Utilizza questo attributo in aggiunta 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

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 della policy deve essere interrotta quando Apigee rileva 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; in caso contrario, 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 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 vuoi recuperare i nomi di entità o risorse durante l'esecuzione della policy.

Puoi specificare solo l'elemento <Product> all'interno dell'elemento <Variables>. Apigee recupera il nome del prodotto API dalla variabile di flusso specificata nell'elemento <Product>. Se non specifichi l'elemento <Variables>, Apigee recupera per impostazione predefinita il nome del prodotto API dalla variabile di contesto apiproduct.name. Utilizzando il nome del prodotto API, Apigee recupera il piano tariffario corrispondente per il 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 recupera il nome del prodotto API dalla variabile di flusso personalizzata myproductvar.name presente nel flusso del proxy API.

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

Puoi impostare variabili di flusso personalizzate utilizzando policy 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 recupera il nome del prodotto API dalla variabile di flusso personalizzata myproductvar.name presente nel flusso del proxy API.

<Product>myproductvar.name</Product>

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

<FaultResponse>

Definisce il messaggio di risposta restituito al client richiedente se viene generato un 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.