查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
總覽
營利限制政策可讓你對發出的 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>
範例
營利限制檢查政策定義範例如下:
<?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>
除了 name
屬性之外,您也可以在管理 UI 代理程式編輯器中使用其他更自然的名稱,為政策加上標籤。
<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
與設定 <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 產品名稱,Apigee 會取得
然後檢查營利限制
預設值 | 不適用 |
是否必填? | 選用 |
類型 | 複雜類型 |
父項元素 |
<MonetizationLimitsCheck> |
子元素 |
<Product> |
<Variables>
元素使用下列語法:
語法
<Variables> <Product>VARIABLE_NAME</Product> </Variables>
範例
以下範例會從 myproductvar.name
自訂流程變數取得 API 產品名稱
都會顯示在 API Proxy 流程中
<Variables> <Product>myproductvar.name</Product> </Variables>
您可以使用 AssignMessage 或 JavaScript 等政策設定自訂變數變數。
<Product>
指定具有 API 產品名稱的變數。
預設值 | 不適用 |
是否必填? | 選用 |
類型 | 字串 |
父項元素 |
<Variables> |
子元素 | 無 |
<Product>
元素使用下列語法:
語法
<Product>VARIABLE_NAME</Product>
範例
以下範例會從 myproductvar.name
自訂流程變數取得 API 產品名稱
都會顯示在 API Proxy 流程中
<Product>myproductvar.name</Product>
您可以使用 AssignMessage 或 JavaScript 等政策設定自訂變數變數。
<FaultResponse>
定義在發生故障時,傳回給要求用戶端的回應訊息。 您可以自訂回應內容 接收自訂訊息如要進一步瞭解 元素及其所有子元素,請參閱 FaultResponse 一節。
流程變數
如果設定了 <MonetizationLimitsCheck>
元素的
ContinueOnError
屬性為 true,不會提出任何錯誤。在此情況下,
流程變數、mint.limitsViolated
、mint.isDeveloperSuspended
和
系統會自動設定 mint.limitsPolicyError
。這些變數可用於
視需要執行進一步的例外狀況處理