Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Обзор
Политика MonetizationLimitsCheck позволяет применять ограничения монетизации для вызовов API, выполняемых разработчиком приложения.
Некоторые случаи срабатывания политики:
- Если разработчик приложения, получающий доступ к монетизированному API, не приобрел подписку на соответствующий продукт API
- На счету разработчика недостаточно баланса.
- Разработчик превысил лимит объема транзакции.
Информацию о том, как прикрепить политику к прокси-серверу API, см. в разделе «Введение ограничений монетизации на прокси-серверах API» .
Элемент <MonetizationLimitsCheck>
Указывает политику MonetizationLimitsCheck.
Значение по умолчанию | Н/Д |
Необходимый? | Необходимый |
Тип | Сложный тип |
Родительский элемент | Н/Д |
Дочерние элементы | <DisplayName> <FaultResponse> <IgnoreUnresolvedVariables> <Variables> |
В следующей таблице представлено высокоуровневое описание дочерних элементов <MonetizationLimitsCheck>
:
Дочерний элемент | Необходимый? | Описание |
---|---|---|
<DisplayName> | Необязательный | Пользовательское имя для политики. |
<FaultResponse> | Необязательный | Указывает ответное сообщение, возвращаемое запрашивающему клиенту при возникновении ошибки. |
<IgnoreUnresolvedVariables> | Необязательный | Определяет, останавливается ли обработка при обнаружении неразрешенной переменной. |
<Variables> | Необязательный | Указывает переменные потока для проверки ограничений монетизации. |
Элемент <MonetizationLimitsCheck>
использует следующий синтаксис:
Синтаксис
<?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>
Пример
В следующем примере показано определение политики 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>
Этот элемент имеет следующие атрибуты, общие для всех политик:
Атрибут | По умолчанию | Необходимый? | Описание |
---|---|---|---|
name | Н/Д | Необходимый | Внутреннее имя политики. Значение атрибута При необходимости используйте элемент |
continueOnError | ЛОЖЬ | Необязательный | Установите значение «false», чтобы возвращать ошибку при сбое политики. Это ожидаемое поведение для большинства политик. Установите значение «true», чтобы выполнение потока продолжалось даже после сбоя политики. |
enabled | истинный | Необязательный | Установите значение «true», чтобы применить политику. Установите значение «false», чтобы «отключить» политику. Политика не будет применяться, даже если она остается присоединенной к потоку. |
async | ЛОЖЬ | Устаревший | Этот атрибут устарел. |
Ссылка на дочерний элемент
В этом разделе описаны дочерние элементы<MonetizationLimitsCheck>
.
<DisplayName>
Используйте в дополнение к атрибуту name
, чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим, более естественным именем.
Элемент <DisplayName>
является общим для всех политик.
Значение по умолчанию | н/д |
Необходимый? | Необязательный. Если вы опустите <DisplayName> , будет использовано значение атрибута name политики. |
Тип | Нить |
Родительский элемент | < PolicyElement > |
Дочерние элементы | Никто |
Элемент <DisplayName>
использует следующий синтаксис:
Синтаксис
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
Пример
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
Элемент <DisplayName>
не имеет атрибутов или дочерних элементов.
<IgnoreUnresolvedVariables>
Определяет, должна ли обработка политики останавливаться, когда Apigee обнаруживает неразрешенную переменную.
Значение по умолчанию | Истинный |
Необходимый? | Необязательный |
Тип | логическое значение |
Родительский элемент | <MonetizationLimitsCheck> |
Дочерние элементы | Никто |
Чтобы игнорировать неразрешенные переменные и продолжить обработку, установите значение true
; в противном случае false
. Значение по умолчанию — true
.
Установка <IgnoreUnresolvedVariables>
значения true
отличается от установки для continueOnError
элемента <MonetizationLimitsCheck>
значения true
. Если вы установите для continueOnError
значение true
, Apigee игнорирует не только ошибки переменных, но и все ошибки.
Элемент <IgnoreUnresolvedVariables>
использует следующий синтаксис:
Синтаксис
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
Пример
В следующем примере для <IgnoreUnresolvedVariables>
устанавливается значение false
:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
Указывает переменные потока, из которых вы хотите получить имена сущностей или ресурсов во время выполнения политики.
Внутри элемента <Variables>
можно указать только элемент <Product>
. Apigee получает название продукта API из переменной потока, указанной в элементе <Product>
. Если вы не укажете элемент <Variables>
, Apigee по умолчанию получит имя продукта API из контекстной переменной apiproduct.name
. Используя название продукта API, Apigee получает соответствующий тарифный план для продукта и выполняет проверку лимитов монетизации.
Значение по умолчанию | Н/Д |
Необходимый? | Необязательный |
Тип | Сложный тип |
Родительский элемент | <MonetizationLimitsCheck> |
Дочерние элементы | <Product> |
Элемент <Variables>
использует следующий синтаксис:
Синтаксис
<Variables> <Product>VARIABLE_NAME</Product> </Variables>
Пример
В следующем примере имя продукта API получается из пользовательской переменной потока myproductvar.name
, присутствующей в потоке прокси-сервера API.
<Variables> <Product>myproductvar.name</Product> </Variables>
Вы можете установить пользовательские переменные потока с помощью таких политик, как AssignMessage или JavaScript .
<Product>
Указывает переменную, имеющую название продукта API.
Значение по умолчанию | Н/Д |
Необходимый? | Необязательный |
Тип | Нить |
Родительский элемент | <Variables> |
Дочерние элементы | Никто |
Элемент <Product>
использует следующий синтаксис:
Синтаксис
<Product>VARIABLE_NAME</Product>
Пример
В следующем примере имя продукта API получается из пользовательской переменной потока myproductvar.name
, присутствующей в потоке прокси-сервера API.
<Product>myproductvar.name</Product>
Вы можете установить пользовательские переменные потока с помощью таких политик, как AssignMessage или JavaScript .
<FaultResponse>
Определяет ответное сообщение, возвращаемое запрашивающему клиенту в случае возникновения ошибки. Вы можете настроить ответные сообщения в соответствии со своими требованиями. Дополнительные сведения об элементе и всех его дочерних элементах см. в разделе FaultResponse .
Переменные потока
Если для атрибута ContinueOnError
элемента <MonetizationLimitsCheck>
установлено значение true, ошибка не возникает. В этом случае переменные потока mint.limitsViolated
, mint.isDeveloperSuspended
и mint.limitsPolicyError
устанавливаются автоматически. При необходимости эти переменные можно использовать для дальнейшей обработки исключений.