營利限制檢查政策

查看 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" encodin>g<="UTF-8"?
MonetizationLimitsCheck async="false" continueOnError="false>"<; enabled=&>quot;true&qu<ot; name=&qu>ot;PO<LICY_NAME"
    Displ>ayNameDISPLA<Y_NAME/DisplayName
    Ign>oreUn<resolvedV>ariables[<true|fa>lse]/IgnoreUn<resolved>Varia<bles
    V>ariab<les
        P>roductVAR<IAB>LE_NAME/Produ<ct
    /Variables
    FaultRes>ponse
        Set<
    >        Payload conte<ntType=&>quot;text/xml"
     <       >    error
  <        >          messages
      <       >           m<essageME>SSAGE_TEXT/message
  <         >             mess<ageMES>SAGE_TEXT/mes<sage
   >             <    /messa>ges
       <         /e>rror
        <    /Payload>
          <  StatusCodeH>TTP_STATU<S/St>atusC<ode
          > < ReasonPhraseREASON_TEXT>/ReasonPhrase
        /Set
    /FaultResponse
/MonetizationLimitsCheck

範例

營利限制檢查政策定義範例如下:

<?xml version="1.0" encodin>g<="UTF-8"?
MonetizationLimitsCheck async="false" continueOnError="false" enabled>=&quo<t;true">; name="Monetization<-Limits-Chec>k&quo<t;
    DisplayNameMonetiz>atio<n Limits Check/DisplayName>
    <IgnoreUnr>esolvedVa<riables>true/IgnoreUnreso<lvedVari>ables<
    Varia>bl<es
        Pr>oductmypro<duc>tvar.name/Prod<uct
    /Variables
	FaultRespo>nse
	        Set
	<     >       Payload content<Type=&qu>ot;text/xml"
	       <       >  error
	                    mess<ages
	  >                      mess<ageDeve>loper has reached usage quota/message
	                        mess<ageIs De>veloper Suspended - {m<onetizati>onLimits.isDevelop<erSusp>ended} /messag<e
	     >              < /messages>
	 <           >    /error
	  <          /P>ayload
	 <           St>atusCode40<3/St>at<usCode
	      >  <    ReasonPhraseForbidde>n/ReasonPhrase
	        /Set
	/FaultResponse
 /MonetizationLimitsCheck

此元素在所有政策中皆包含下列屬性:

屬性 預設 必填與否 Description
name 必要

政策的內部名稱。name 屬性的值可以包含英文字母、數字、空格、連字號、底線和半形句號。這個值不得超過 255 個字元。

或者,您也可以使用 <DisplayName> 元素,在管理 UI Proxy 編輯器中,以不同的自然語言名稱來標示政策。

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> 元素的 continueOnErrortrue。如果將 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>

您可以使用 AssignMessageJavaScript 等政策設定自訂變數變數。

<Product>

指定具有 API 產品名稱的變數。

預設值 不適用
是否必填? 選用
類型 字串
父項元素 <Variables>
子元素

<Product> 元素使用下列語法:

語法

<Product>VARIABLE_NAME</Product>

範例

以下範例會從 myproductvar.name 自訂流程變數取得 API 產品名稱 都會顯示在 API Proxy 流程中

<Product>myproductvar.name</Product>

您可以使用 AssignMessageJavaScript 等政策設定自訂變數變數。

<FaultResponse>

定義在發生故障時,傳回給要求用戶端的回應訊息。 您可以自訂回應內容 接收自訂訊息如要進一步瞭解 元素及其所有子元素,請參閱 FaultResponse 一節。

流程變數

如果設定了 <MonetizationLimitsCheck> 元素的 ContinueOnError 屬性為 true,不會提出任何錯誤。在此情況下, 流程變數、mint.limitsViolatedmint.isDeveloperSuspended 和 系統會自動設定 mint.limitsPolicyError。這些變數可用於 視需要執行進一步的例外狀況處理