คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
เกริ่นนำ
หัวข้อนี้จะอธิบายวิธีใช้ apigee-access
เพื่อเข้าถึงบริการโควต้า Apigee Edge จากแอปพลิเคชัน Node.js เมื่อใช้ apigee-access คุณจะใช้และรีเซ็ตค่าโควต้าได้
ตัวอย่าง
var apigee = require('apigee-access'); var quota = apigee.getQuota(); quota.apply({ identifier: 'Foo', allow: 10, timeUnit: 'hour' }, function(err, result) { console.log('Quota applied: %j', result); });
วิธีการ
ใช้
แก้ไขการตั้งค่าในออบเจ็กต์โควต้า ใช้วิธีนี้เพื่อเพิ่มหรือลดโควต้า เปลี่ยนช่วงเวลา และทำการกำหนดค่าอื่นๆ
การใช้งาน
var apigee = require('apigee-access'); var quota = apigee.getQuota(); quota.apply({parameters}, callback);
ตัวอย่าง
var apigee = require('apigee-access'); var quota = apigee.getQuota(); // Apply a quota of 100 requests per hour quota.apply({ identifier: 'Foo', timeUnit: 'hour', allow: 100 }, quotaResult); function quotaResult(err, r) { if (err) { console.error('Quota failed'); } }
พารามิเตอร์
เมธอดapply() จะใช้พารามิเตอร์ 2 ตัว คือ ออบเจ็กต์และฟังก์ชัน ดังนี้
(1) พารามิเตอร์แรกคือออบเจ็กต์ JSON ที่มีช่องต่อไปนี้
- identifier (สตริง, ต้องระบุ): ตัวระบุที่ไม่ซ้ำกันของที่เก็บข้อมูลโควต้า ในทางปฏิบัติอาจเป็นรหัสแอปพลิเคชัน ที่อยู่ IP หรือชื่อผู้ใช้
- timeUnit (สตริง, ต้องระบุ): ระยะเวลาในการสะสมที่เก็บข้อมูลโควต้าจนกว่าจะรีเซ็ต ค่าที่ถูกต้องคือ "นาที" "ชั่วโมง" "วัน" "สัปดาห์" และ "เดือน"
- allow (ตัวเลข, ต้องระบุ): ค่าสูงสุดสำหรับที่เก็บข้อมูลโควต้า ระบบจะรวมค่านี้กับค่าปัจจุบันเพื่อแสดงว่าโควต้าทำงานสำเร็จหรือไม่
- interval (ตัวเลข, ไม่บังคับ): รวมกับ "timeUnit" เพื่อกำหนดระยะเวลาก่อนที่จะมีการรีเซ็ตโควต้า ค่าเริ่มต้นคือ 1 ตั้งค่าเป็นค่าที่ใหญ่ขึ้นเพื่ออนุญาตให้ใช้โควต้า เช่น "2 ชั่วโมง" "3 สัปดาห์" และอื่นๆ
- weight (ตัวเลข, ไม่บังคับ): ค่าที่จะเพิ่มโควต้า ค่าเริ่มต้นคือ 1
(2) อาร์กิวเมนต์ที่ 2 เป็นฟังก์ชันเรียกกลับที่มีอาร์กิวเมนต์ 2 รายการต่อไปนี้
- อาร์กิวเมนต์แรกเป็นออบเจ็กต์ข้อผิดพลาดหากเพิ่มโควต้าไม่ได้ หรือไม่กำหนดหากการดำเนินการสำเร็จ
- องค์ประกอบที่ 2 คือออบเจ็กต์ซึ่งประกอบด้วยช่องต่อไปนี้
- used (ตัวเลข): ค่าปัจจุบันของที่เก็บข้อมูลโควต้า
- allowed (จำนวน): ค่าสูงสุดของที่เก็บข้อมูลโควต้าก่อนที่จะถือว่าเกินโควต้า มีการส่งค่าเดียวกันนี้เป็น "allow" ในออบเจ็กต์คำขอ
- isAllowed (บูลีน): หากมีพื้นที่เหลืออยู่ในโควต้า เป็นจริงตราบใดที่ "มือสอง" น้อยกว่าหรือเท่ากับ "อนุญาต"
- expiryTime (ยาว): การประทับเวลาเป็นมิลลิวินาทีตั้งแต่รูปแบบ 1970 เมื่อรีเซ็ตที่เก็บข้อมูลโควต้า
- timestamp (ยาว): การประทับเวลาที่มีการอัปเดตโควต้า
ตัวอย่าง
var apigee = require('apigee-access'); var quota = apigee.getQuota(); // Apply a quota of 100 requests per hour quota.apply({ identifier: 'Foo', timeUnit: 'hour', allow: 100 }, quotaResult); // Apply a quota of 500 requests per five minutes quota.apply({ identifier: 'Bar', timeUnit: 'minute', interval: 5, allow: 500 }, quotaResult); // Increment the quota by a value of 10 quota.apply({ identifier: 'Foo', timeUnit: 'hour', allow: 100, weight: 10 }, quotaResult); function quotaResult(err, r) { if (err) { console.error('Quota failed'); } }
รีเซ็ต
หากต้องการรีเซ็ตโควต้าเป็น 0 ให้เรียก claim.reset() เมธอดนี้ใช้พารามิเตอร์ 2 ตัว ได้แก่-
ออบเจ็กต์ JSON ที่มีช่องต่อไปนี้
- identifier (สตริง, ต้องระบุ): ตัวระบุที่ไม่ซ้ำกันของที่เก็บข้อมูลโควต้า ในทางปฏิบัติอาจเป็นรหัสแอปพลิเคชัน ที่อยู่ IP หรือชื่อผู้ใช้
- timeUnit (สตริง, ต้องระบุ): ระยะเวลาในการสะสมที่เก็บข้อมูลโควต้าจนกว่าจะรีเซ็ต ค่าที่ถูกต้องคือ "นาที" "ชั่วโมง" "วัน" "สัปดาห์" และ "เดือน"
- interval (ตัวเลข, ไม่บังคับ): รวมกับ "timeUnit" เพื่อกำหนดระยะเวลาก่อนที่จะมีการรีเซ็ตโควต้า ค่าเริ่มต้นคือ 1 ตั้งค่าเป็นค่าที่ใหญ่ขึ้นเพื่ออนุญาตให้ใช้เวลาในการรีเซ็ต เช่น "2 ชั่วโมง" "3 สัปดาห์" และอื่นๆ
-
ฟังก์ชันเรียกกลับ
- โค้ดเรียกกลับจะใช้ออบเจ็กต์ข้อผิดพลาดเป็นพารามิเตอร์แรกหากรีเซ็ตไม่สำเร็จ
กรณีการใช้งานโควต้าขั้นสูง
เมื่อสร้างโควต้า คุณจะรวมออบเจ็กต์ "options" (ไม่บังคับ) ได้ ออบเจ็กต์นี้มีพารามิเตอร์ที่ไม่บังคับ 1 รายการ ดังนี้- syncInterval (ตัวเลข, ไม่บังคับ): จำนวนวินาทีที่การใช้งานโควต้าแบบกระจายซิงค์สถานะผ่านเครือข่าย ค่าเริ่มต้นคือ 10