Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Przegląd
Zasada MonetizationLimitsCheck umożliwia egzekwowanie limitów zarabiania w przypadku wywołań interfejsu API wykonywanych przez dewelopera aplikacji.
Oto niektóre przypadki, w których zasada jest aktywowana:
- Deweloper aplikacji, który uzyskuje dostęp do interfejsu API, na którym można zarabiać, nie kupił subskrypcji powiązanej usługi API .
- Konto dewelopera ma niewystarczające saldo.
- Deweloper przekroczył limit wolumenu transakcji.
Informacje o tym, jak dołączyć zasadę do serwera proxy interfejsu API, znajdziesz w artykule Egzekwowanie limitów zarabiania w przypadku serwerów proxy interfejsu API.
Element <MonetizationLimitsCheck>
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 tabeli poniżej znajdziesz ogólny opis elementów podrzędnych elementu <MonetizationLimitsCheck>:
| Element podrzędny | Wymagany? | Opis |
|---|---|---|
<DisplayName> |
Opcjonalny | Niestandardowa nazwa zasady. |
<FaultResponse> |
Opcjonalny | Określa komunikat odpowiedzi zwracany do klienta wysyłającego żądanie, gdy wystąpi błąd. |
<IgnoreUnresolvedVariables> |
Opcjonalny | Określa, czy przetwarzanie ma się zatrzymać, gdy napotkana zostanie nierozwiązana zmienna. |
<Variables> |
Opcjonalny | Określa zmienne przepływu, które mają być sprawdzane pod kątem limitów zarabiania. |
Element <MonetizationLimitsCheck> używa tej 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
Poniższy przykład przedstawia definicję 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. |
Informacje o elementach podrzędnych
W tej sekcji opisujemy elementy podrzędne elementu<MonetizationLimitsCheck>.
<DisplayName>
Używaj go w połączeniu z atrybutem name, aby oznaczyć zasadę w edytorze proxy interfejsu zarządzania inną, bardziej naturalnie brzmiącą nazwą.
Element <DisplayName> jest wspólny dla wszystkich zasad.
| Wartość domyślna | nie dotyczy |
| Wymagany? | Opcjonalnie. Jeśli pominiesz <DisplayName>, używana jest wartość atrybutu name zasady. |
| Typ | Ciąg znaków |
| Element nadrzędny | <PolicyElement> |
| Elementy podrzędne | Brak |
Element <DisplayName> ma tę 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 ma się zatrzymać, gdy Apigee napotka nierozwiązaną zmienną.
| Wartość domyślna | Prawda |
| Wymagany? | Opcjonalny |
| Typ | Wartość logiczna |
| Element nadrzędny |
<MonetizationLimitsCheck> |
| Elementy podrzędne | Brak |
Aby zignorować nierozwiązane zmienne i kontynuować przetwarzanie, ustaw wartość na true;
w przeciwnym razie false. Wartość domyślna to true.
Ustawienie <IgnoreUnresolvedVariables> na true różni się od ustawienia continueOnError elementu <MonetizationLimitsCheck>'s
na true. Jeśli ustawisz continueOnError na true, Apigee zignoruje nie
tylko błędy zmiennych, ale też wszystkie błędy.
Element <IgnoreUnresolvedVariables> używa tej składni:
Składnia
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
Przykład
Poniższy przykład ustawia <IgnoreUnresolvedVariables> na false:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
Określa zmienne przepływu, z których chcesz pobrać nazwy encji lub zasobów podczas wykonywania zasady.
W elemencie <Variables> możesz określić tylko element <Product>. Apigee pobiera
nazwę usługi API ze zmiennej przepływu określonej w elemencie <Product>. Jeśli
nie określisz elementu <Variables>, Apigee domyślnie pobierze nazwę usługi API ze
zmiennej kontekstowej apiproduct.name. Używając nazwy usługi API, Apigee pobiera odpowiedni plan taryfowy dla usługi i sprawdza limity zarabiania.
| Wartość domyślna | Nie dotyczy |
| Wymagany? | Opcjonalny |
| Typ | Typ złożony |
| Element nadrzędny |
<MonetizationLimitsCheck> |
| Elementy podrzędne |
<Product> |
Element <Variables> używa tej składni:
Składnia
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>Przykład
Poniższy przykład pobiera nazwę usługi API z niestandardowej zmiennej przepływu myproductvar.name znajdującej się w przepływie serwera proxy interfejsu API.
<Variables> <Product>myproductvar.name</Product> </Variables>
Niestandardowe zmienne przepływu możesz ustawić za pomocą zasad, takich jak AssignMessage czy JavaScript.
<Product>
Określa zmienną zawierającą nazwę usługi API.
| Wartość domyślna | Nie dotyczy |
| Wymagany? | Opcjonalny |
| Typ | Ciąg znaków |
| Element nadrzędny |
<Variables> |
| Elementy podrzędne | Brak |
Element <Product> używa tej składni:
Składnia
<Product>VARIABLE_NAME</Product>
Przykład
Poniższy przykład pobiera nazwę usługi API z niestandardowej zmiennej przepływu myproductvar.name
znajdującej się w przepływie serwera proxy interfejsu API.
<Product>myproductvar.name</Product>
Niestandardowe zmienne przepływu możesz ustawić za pomocą zasad, takich jak AssignMessage czy JavaScript.
<FaultResponse>
Definiuje komunikat odpowiedzi zwracany do klienta wysyłającego żądanie, jeśli wystąpi błąd. Komunikaty odpowiedzi możesz dostosować do swoich potrzeb. Więcej informacji o elemencie i wszystkich jego elementach podrzędnych znajdziesz w artykule FaultResponse.
Zmienne przepływu
Jeśli ustawisz atrybut
ContinueOnError elementu <MonetizationLimitsCheck> na true, nie zostanie zgłoszony żaden błąd. W takim przypadku automatycznie ustawiane są zmienne przepływu
mint.limitsViolated, mint.isDeveloperSuspended i
mint.limitsPolicyError. W razie potrzeby można użyć tych zmiennych do
dalszej obsługi wyjątków.