คุณกำลังดูเอกสารประกอบของ 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 |
ไม่มีข้อมูล | จำเป็น |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ ใช้องค์ประกอบ |
continueOnError |
เท็จ | ไม่บังคับ | ตั้งค่าเป็น "false" เพื่อแสดงข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งเป็นลักษณะการทํางานที่คาดหวังตามนโยบายส่วนใหญ่ ตั้งค่าเป็น "จริง" เพื่อดําเนินการโฟลว์ข้อมูลต่อไป แม้ว่านโยบายจะล้มเหลวก็ตาม |
enabled |
จริง | ไม่บังคับ | ตั้งค่าเป็น "true" เพื่อบังคับใช้นโยบาย ตั้งค่าเป็น "false" เพื่อ "ปิด" นโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังคงแนบไปกับโฟลว์ |
async |
เท็จ | เลิกใช้ | แอตทริบิวต์นี้เลิกใช้งานแล้ว |
ข้อมูลอ้างอิงขององค์ประกอบย่อย
ส่วนนี้อธิบายองค์ประกอบย่อยของ<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 จะแตกต่างจากการตั้งค่า
continueOnError ขององค์ประกอบ <MonetizationLimitsCheck> เป็น true หากตั้งค่า continueOnError เป็น true Apigee จะละเว้นไม่เพียงแต่ข้อผิดพลาดของตัวแปรเท่านั้น แต่ยังรวมถึงข้อผิดพลาดทั้งหมดด้วย
องค์ประกอบ <IgnoreUnresolvedVariables> ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
ตัวอย่าง
ตัวอย่างต่อไปนี้ตั้งค่า <IgnoreUnresolvedVariables> เป็น false
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
ระบุตัวแปรโฟลว์ที่คุณต้องการดึงข้อมูลชื่อ เอนทิตีหรือชื่อทรัพยากรระหว่างการดำเนินการนโยบาย
คุณระบุได้เฉพาะองค์ประกอบ <Product> ภายในองค์ประกอบ <Variables> Apigee จะรับชื่อผลิตภัณฑ์ API จากตัวแปรโฟลว์ที่ระบุไว้ในองค์ประกอบ <Product> หากไม่ได้ระบุองค์ประกอบ <Variables> โดยค่าเริ่มต้น Apigee จะรับชื่อผลิตภัณฑ์ API จากตัวแปรบริบท apiproduct.name Apigee จะรับแผนอัตราที่เกี่ยวข้องสำหรับผลิตภัณฑ์และตรวจสอบขีดจำกัดการสร้างรายได้โดยใช้ชื่อผลิตภัณฑ์ API
| ค่าเริ่มต้น | ไม่มี |
| ต้องระบุหรือไม่ | ไม่บังคับ |
| ประเภท | ประเภทซับซ้อน |
| องค์ประกอบระดับบน |
<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> เป็น "จริง" ระบบจะไม่แสดงข้อผิดพลาด ในกรณีนี้ ระบบจะตั้งค่าตัวแปรโฟลว์
mint.limitsViolated, mint.isDeveloperSuspended และ
mint.limitsPolicyError โดยอัตโนมัติ คุณสามารถใช้ตัวแปรเหล่านี้เพื่อ
จัดการข้อยกเว้นเพิ่มเติมได้หากจำเป็น