Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Omówienie
Zasada MonetizationLimitsCheck pozwala egzekwować limity zarabiania na wywołaniach interfejsu API przez dewelopera aplikacji.
Oto kilka przypadków wywołania zasady:
- Jeśli deweloper aplikacji, który uzyskuje dostęp do interfejsu API monetyzacji, nie kupił subskrypcji powiązana usługa API
- Na koncie dewelopera nie ma wystarczających środków.
- Deweloper przekroczył limit liczby transakcji.
Informacje na temat dołączania zasad do serwera proxy interfejsu API znajdziesz w sekcji Egzekwuj limity zarabiania na serwerach proxy interfejsu API.
<MonetizationLimitsCheck>
element
Określa zasadę MonetizationLimitsCheck.
Wartość domyślna | Nie dotyczy |
Wymagany? | Wymagane |
Typ | Typ złożony |
Element nadrzędny | Nie dotyczy |
Elementy podrzędne |
<DisplayName> <FaultResponse> <IgnoreUnresolvedVariables> <Variables> |
W tej tabeli znajdziesz ogólny opis elementów podrzędnych elementu <MonetizationLimitsCheck>
:
Element podrzędny | Wymagana? | Opis |
---|---|---|
<DisplayName> |
Opcjonalnie | Własna nazwa zasady. |
<FaultResponse> |
Opcjonalnie | Określa komunikat z odpowiedzią zwracany do klienta wysyłającego żądanie, gdy pojawia się błąd. |
<IgnoreUnresolvedVariables> |
Opcjonalnie | Określa, czy przetwarzanie zatrzymuje się po napotkaniu nierozwiązanej zmiennej. |
<Variables> |
Opcjonalnie | Określa zmienne procesu, które mają zostać sprawdzone pod kątem limitów zarabiania. |
Element <MonetizationLimitsCheck>
ma taką składnię:
Składnia
<?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>
Przykład
Oto przykład definicji zasady 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>
Ten element ma te atrybuty, które są wspólne dla wszystkich zasad:
Atrybut | Domyślnie | Wymagany? | Description |
---|---|---|---|
name |
Nie dotyczy | Wymagane |
Wewnętrzna nazwa zasady. Wartość atrybutu Opcjonalnie użyj elementu |
continueOnError |
fałsz | Opcjonalnie | Ustaw wartość „false”, aby wyświetlać błąd, gdy zasada nie działa. To prawidłowy proces w przypadku większości zasad. Ustaw wartość „true”, aby kontynuować wykonywanie przepływu nawet po wystąpieniu błędu. |
enabled |
prawda | Opcjonalnie | Ustaw wartość „true”, aby egzekwować zasadę. Ustaw wartość „false”, aby wyłączyć zasadę. Zasada nie będzie egzekwowana, nawet jeśli pozostanie powiązana z przepływem. |
async |
fałsz | Wycofano | Ten atrybut został wycofany. |
Odniesienie do elementu podrzędnego
W tej sekcji opisano elementy podrzędne elementu<MonetizationLimitsCheck>
.
<DisplayName>
Używaj oprócz atrybutu name
do oznaczania zasady w
edytor serwera proxy w interfejsie zarządzania o innej, bardziej naturalnie brzmiącej nazwie.
Element <DisplayName>
jest wspólny dla wszystkich zasad.
Wartość domyślna | nie dotyczy |
Wymagany? | Opcjonalnie: Jeśli pominiesz <DisplayName> , wartość pary klucz-wartość
jest używany atrybut name zasady |
Typ | Ciąg znaków |
Element nadrzędny | <PolicyElement> |
Elementy podrzędne | Brak |
Element <DisplayName>
ma taką składnię:
Składnia
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
Przykład
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
Element <DisplayName>
nie ma atrybutów ani elementów podrzędnych.
<IgnoreUnresolvedVariables>
Określa, czy przetwarzanie zasady powinno zostać zatrzymane, gdy Apigee natrafi na nierozwiązaną zmienną.
Wartość domyślna | Prawda |
Wymagany? | Opcjonalnie |
Typ | Wartość logiczna |
Element nadrzędny |
<MonetizationLimitsCheck> |
Elementy podrzędne | Brak |
Aby zignorować nierozstrzygnięte zmienne i kontynuować przetwarzanie, ustaw wartość na true
;
w przeciwnym razie: false
. Wartością domyślną jest true
.
Ustawienie <IgnoreUnresolvedVariables>
na true
różni się od ustawienia elementu <MonetizationLimitsCheck>
continueOnError
do true
. Jeśli ustawisz continueOnError
na true
, Apigee będzie ignorować wartości
błędy zmiennych,
ale też wszystkie błędy.
Element <IgnoreUnresolvedVariables>
ma taką składnię:
Składnia
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
Przykład
Ten przykład ustawia <IgnoreUnresolvedVariables>
na false
:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
Określa zmienne przepływu, z których chcesz pobrać nazw encji lub zasobów podczas wykonywania zasady.
Element <Product>
możesz określić tylko w elemencie <Variables>
. Apigee uzyskuje
nazwę produktu API ze zmiennej przepływu określonej w elemencie <Product>
. Jeśli
nie określa elementu <Variables>
, Apigee domyślnie pobiera nazwę usługi interfejsu API z
apiproduct.name
– zmienna kontekstowa. Dzięki użyciu nazwy usługi API Apigee pobiera
odpowiedni abonament usługi i sprawdza limity zarabiania.
Wartość domyślna | Nie dotyczy |
Wymagany? | Opcjonalnie |
Typ | Typ złożony |
Element nadrzędny |
<MonetizationLimitsCheck> |
Elementy podrzędne |
<Product> |
Element <Variables>
ma taką składnię:
Składnia
<Variables> <Product>VARIABLE_NAME</Product> </Variables>
Przykład
Ten przykład pobiera nazwę produktu API z niestandardowej zmiennej przepływu myproductvar.name
obecne w przepływie serwera proxy interfejsu API.
<Variables> <Product>myproductvar.name</Product> </Variables>
Niestandardowe zmienne przepływu możesz ustawiać za pomocą zasad takich jak AssignMessage czy JavaScript.
<Product>
Określa zmienną z nazwą usługi API.
Wartość domyślna | Nie dotyczy |
Wymagany? | Opcjonalnie |
Typ | Ciąg znaków |
Element nadrzędny |
<Variables> |
Elementy podrzędne | Brak |
Element <Product>
ma taką składnię:
Składnia
<Product>VARIABLE_NAME</Product>
Przykład
Ten przykład pobiera nazwę produktu API z niestandardowej zmiennej przepływu myproductvar.name
obecne w przepływie serwera proxy interfejsu API.
<Product>myproductvar.name</Product>
Niestandardowe zmienne przepływu możesz ustawiać za pomocą zasad takich jak AssignMessage czy JavaScript.
<FaultResponse>
Określa komunikat z odpowiedzią zwracany do klienta żądającego, jeśli zostanie zgłoszony błąd. Możesz dostosować odpowiedź wiadomości zgodnie z wymaganiami. Więcej informacji na temat elementu i wszystkich jego elementów podrzędnych – patrz FaultResponse.
Zmienne przepływu
Jeśli ustawisz w elemencie <MonetizationLimitsCheck>
atrybut
ContinueOnError
ma wartość true (prawda), brak błędu. W tym przypadku parametr
zmienne przepływu, mint.limitsViolated
, mint.isDeveloperSuspended
i
mint.limitsPolicyError
są ustawiane automatycznie. Tych zmiennych można użyć do:
w razie potrzeby przeprowadzić dalszą obsługę wyjątków.