Ограничения монетизацииПроверьте политику

Вы просматриваете документацию 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 Н/Д Необходимый

Внутреннее имя политики. Значение атрибута name может содержать буквы, цифры, пробелы, дефисы, символы подчеркивания и точки. Это значение не может превышать 255 символов.

При необходимости используйте элемент <DisplayName> , чтобы пометить политику в редакторе прокси-сервера пользовательского интерфейса управления другим именем на естественном языке.

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