คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
ภาพรวม
นโยบาย 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
การใช้ชื่อผลิตภัณฑ์ API ทำให้ Apigee ได้รับแพ็กเกจอัตราที่เกี่ยวข้องสำหรับผลิตภัณฑ์และดำเนินการตรวจสอบขีดจำกัดการสร้างรายได้
ค่าเริ่มต้น | ไม่มีข้อมูล |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | ประเภทที่ซับซ้อน |
องค์ประกอบระดับบน |
<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
โดยอัตโนมัติ ตัวแปรเหล่านี้จะใช้เพื่อจัดการข้อยกเว้นเพิ่มเติมได้หากจําเป็น