查看 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。這些變數可用於
  視需要執行進一步的例外狀況處理