Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Обзор
Политика 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 . При необходимости эти переменные можно использовать для дальнейшей обработки исключений.