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 Facoltativamente, utilizza l'elemento |
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.