Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Opis
Zasady MonetizationLimitsCheck pozwalają egzekwować limity zarabiania na wywołaniach interfejsu API wykonywanych przez dewelopera aplikacji.
Oto kilka przykładów:
- Jeśli deweloper aplikacji uzyskujący dostęp do interfejsu API zarabiania nie kupił subskrypcji powiązanej usługi interfejsu API
- Na koncie dewelopera nie ma wystarczającej ilości środków.
- Deweloper przekroczył limit liczby transakcji.
Więcej informacji o łączeniu zasad z serwerem proxy interfejsu API znajdziesz w artykule o egzekwowaniu limitów zarabiania na serwerach proxy interfejsów 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 tej tabeli znajdziesz ogólny opis elementów podrzędnych obiektu <MonetizationLimitsCheck>
:
Element podrzędny | Wymagana? | Opis |
---|---|---|
<DisplayName> |
Opcjonalnie | Niestandardowa nazwa zasady. |
<FaultResponse> |
Opcjonalnie | Określa komunikat z odpowiedzią zwrócony do klienta wysyłającego żądanie po wystąpieniu błędu. |
<IgnoreUnresolvedVariables> |
Opcjonalnie | Określa, czy przetwarzanie zatrzymuje się w przypadku wystąpienia nierozstrzygniętej zmiennej. |
<Variables> |
Opcjonalnie | Określa zmienne przepływu do sprawdzenia pod kątem limitów zarabiania. |
W elemencie <MonetizationLimitsCheck>
używana jest taka składnia:
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 pokazuje 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. |
Odniesienie do elementu podrzędnego
W tej sekcji opisano elementy podrzędne funkcji<MonetizationLimitsCheck>
.
<DisplayName>
Użyj oprócz atrybutu name
, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną, bardziej naturalną nazwą.
Element <DisplayName>
jest wspólny dla wszystkich zasad.
Wartość domyślna | nie dotyczy |
Wymagany? | Opcjonalnie. Jeśli pominiesz właściwość <DisplayName> , zostanie użyta wartość atrybutu name zasady |
Typ | Ciąg znaków |
Element nadrzędny | <PolicyElement> |
Elementy podrzędne | Brak |
W elemencie <DisplayName>
używana jest taka składnia:
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 zostać zatrzymane, gdy Apigee napotka nierozstrzygniętą 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 ustaw false
. Wartością domyślną jest true
.
Ustawienie wartości <IgnoreUnresolvedVariables>
na true
różni się od ustawienia właściwości continueOnError
elementu <MonetizationLimitsCheck>
na true
. Jeśli ustawisz continueOnError
na true
, Apigee ignoruje nie tylko błędy zmiennych, ale wszystkie błędy.
W elemencie <IgnoreUnresolvedVariables>
używana jest taka składnia:
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 mają być pobierane nazwy jednostek lub zasobów podczas wykonywania zasady.
W elemencie <Variables>
możesz określić tylko element <Product>
. Apigee pobiera nazwę usługi interfejsu API ze zmiennej przepływu określonej w elemencie <Product>
. Jeśli nie określisz elementu <Variables>
, Apigee domyślnie pobierze nazwę produktu interfejsu API ze zmiennej kontekstowej apiproduct.name
. Na podstawie nazwy usługi API Apigee uzyskuje dostęp do odpowiedniego planu taryfowego dla 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> |
W elemencie <Variables>
używana jest taka składnia:
Składnia
<Variables> <Product>VARIABLE_NAME</Product> </Variables>
Przykład
Poniższy przykład pobiera nazwę usługi interfejsu API z niestandardowej zmiennej przepływu myproductvar.name
dostępnej w procesie serwera proxy interfejsu API.
<Variables> <Product>myproductvar.name</Product> </Variables>
Niestandardowe zmienne przepływu możesz ustawić, korzystając z zasad takich jak AssignMessage czy JavaScript.
<Product>
Określa zmienną zawierającą nazwę produktu w interfejsie API.
Wartość domyślna | Nie dotyczy |
Wymagany? | Opcjonalnie |
Typ | Ciąg znaków |
Element nadrzędny |
<Variables> |
Elementy podrzędne | Brak |
W elemencie <Product>
używana jest taka składnia:
Składnia
<Product>VARIABLE_NAME</Product>
Przykład
Poniższy przykład pobiera nazwę usługi interfejsu API z niestandardowej zmiennej przepływu myproductvar.name
dostępnej w procesie serwera proxy interfejsu API.
<Product>myproductvar.name</Product>
Niestandardowe zmienne przepływu możesz ustawić, korzystając z zasad takich jak AssignMessage czy JavaScript.
<FaultResponse>
Definiuje komunikat z odpowiedzią zwracany klientowi, który wysłał żądanie, gdy wystąpi błąd. Do swoich potrzeb możesz dostosować wiadomości z odpowiedziami. Więcej informacji o elemencie i wszystkich jego elementach podrzędnych znajdziesz w sekcji FaultResponse.
Zmienne przepływu
Jeśli ustawisz wartość atrybutu ContinueOnError
elementu <MonetizationLimitsCheck>
na „true” (prawda), błąd nie zostanie zgłoszony. W tym przypadku zmienne przepływu mint.limitsViolated
, mint.isDeveloperSuspended
i mint.limitsPolicyError
są ustawiane automatycznie. W razie potrzeby można ich używać do dalszej obsługi wyjątków.