您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
總覽
MonetizeLimitsCheck 政策可讓您針對應用程式開發人員發出的 API 呼叫強制執行營利限制。
觸發政策的一些情況如下:
- 如果存取營利 API 的應用程式開發人員未購買相關聯 API 產品的訂閱方案
- 開發人員帳戶的餘額不足。
- 開發人員的交易量已超過交易量上限。
如要瞭解如何將政策附加至 API Proxy,請參閱「強制執行 API Proxy 的營利限制」一文。
<MonetizationLimitsCheck>
個元素
指定 MonetizeLimitsCheck 政策。
預設值 | 不適用 |
是否必填? | 必要 |
類型 | 複雜類型 |
父項元素 | 不適用 |
子元素 |
<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>
範例
下列範例說明 MonetizeLimitsCheck 政策定義:
<?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>
此元素在所有政策中皆包含下列屬性:
屬性 | 預設 | 必填與否 | Description |
---|---|---|---|
name |
無 | 必要 |
政策的內部名稱。 或者,您也可以使用 |
continueOnError |
false | 選填 | 如果設為「false」,當政策失敗時會傳回錯誤。多數政策預期的行為如下。如果設為「true」,則在政策失敗後,仍會繼續執行流程。 |
enabled |
true | 選填 | 設為「true」即可強制執行政策。將政策設為「false」,即可「關閉」政策。即使政策已附加至流程,系統也不會強制執行這項政策。 |
async |
false | 已淘汰 | 這項屬性已淘汰。 |
子項元素參照
本節將說明<MonetizationLimitsCheck>
的子元素。
<DisplayName>
在管理 UI Proxy 編輯器中,除了 name
屬性,可用以其他自然更自然的名稱為政策加上標籤。
<DisplayName>
元素適用於所有政策。
預設值 | n/a |
是否必填? | 選用設定。如果省略 <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
與將 <MonetizationLimitsCheck>
元素的 continueOnError
設為 true
不同。如果您將 continueOnError
設為 true
,Apigee 不僅會忽略變數錯誤,還會忽略所有錯誤。
<IgnoreUnresolvedVariables>
元素使用下列語法:
語法
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
範例
以下範例將 <IgnoreUnresolvedVariables>
設為 false
:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
指定要在政策執行期間擷取的實體或資源名稱的流程變數。
您只能指定 <Variables>
元素中的 <Product>
元素。Apigee 會從 <Product>
元素中指定的流程變數取得 API 產品名稱。如果未指定 <Variables>
元素,Apigee 預設會從 apiproduct.name
內容變數取得 API 產品名稱。透過使用 API 產品名稱,Apigee 會取得產品對應的費率方案,並執行營利限制檢查。
預設值 | 不適用 |
是否必填? | 選用 |
類型 | 複雜類型 |
父項元素 |
<MonetizationLimitsCheck> |
子元素 |
<Product> |
<Variables>
元素使用下列語法:
語法
<Variables> <Product>VARIABLE_NAME</Product> </Variables>
範例
以下範例會從 API Proxy 流程中的 myproductvar.name
自訂流程變數取得 API 產品名稱。
<Variables> <Product>myproductvar.name</Product> </Variables>
您可以使用 AssignMessage 或 JavaScript 等政策設定自訂流程變數。
<Product>
指定有 API 產品名稱的變數。
預設值 | 不適用 |
是否必填? | 選用 |
類型 | 字串 |
父項元素 |
<Variables> |
子元素 | 無 |
<Product>
元素使用下列語法:
語法
<Product>VARIABLE_NAME</Product>
範例
以下範例會從 API Proxy 流程中的 myproductvar.name
自訂流程變數取得 API 產品名稱。
<Product>myproductvar.name</Product>
您可以使用 AssignMessage 或 JavaScript 等政策設定自訂流程變數。
<FaultResponse>
定義發生錯誤時傳回給要求用戶端的回應訊息。您可以根據需求自訂回應訊息。如要進一步瞭解該元素及其所有子元素,請參閱 FaultResponse。
流程變數
如果您將 <MonetizationLimitsCheck>
元素的 ContinueOnError
屬性設為 true,則不會引發錯誤。在這種情況下,系統會自動設定資料流變數 mint.limitsViolated
、mint.isDeveloperSuspended
和 mint.limitsPolicyError
。如有需要,這些變數可用於執行進一步的例外狀況處理。