คุณกำลังดูเอกสารประกอบ 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'); } }
พารามิเตอร์
เมธอด use() ใช้พารามิเตอร์สองตัว คือ ออบเจ็กต์และฟังก์ชัน:
(1) พารามิเตอร์แรกคือออบเจ็กต์ JSON ที่มีช่องต่อไปนี้
- identifier (สตริง, ต้องระบุ): ไม่ซ้ำกัน ที่เก็บข้อมูลโควต้า ในทางปฏิบัติแล้ว อาจเป็นรหัสแอปพลิเคชัน ที่อยู่ IP หรือ ชื่อผู้ใช้
- timeUnit (สตริง, ต้องระบุ): ระยะเวลาของโควต้า ระบบจะรวบรวมข้อมูลที่เก็บข้อมูลไว้จนกว่าจะมีการรีเซ็ต ค่าที่ถูกต้องคือ "minute," "ชั่วโมง" "วัน" "สัปดาห์" และ "เดือน"
- allow (number, required): ค่าสูงสุดสำหรับ ที่เก็บข้อมูลโควต้า ค่านี้จะรวมกับค่าปัจจุบันเพื่อแสดงว่า โควต้าสำเร็จแล้ว
- interval (ตัวเลข, ไม่บังคับ): ใช้ร่วมกับฟังก์ชัน "หน่วยเวลา" เพื่อดูว่าจะต้องรีเซ็ตโควต้าเป็นเวลานานเท่าใด ค่าเริ่มต้นคือ 1 กำหนดเป็นขนาดใหญ่ขึ้น เพื่ออนุญาตโควต้า เช่น "2 ชั่วโมง" "3 สัปดาห์" เป็นต้น
- weight (ตัวเลข, ไม่บังคับ): ค่าที่กำหนดให้ เพิ่มโควต้าตาม ค่าเริ่มต้นคือ 1
(2) อาร์กิวเมนต์ที่ 2 เป็นฟังก์ชัน Callback ที่มี 2 อาร์กิวเมนต์นี้ อาร์กิวเมนต์:
- อาร์กิวเมนต์แรกคือออบเจ็กต์ข้อผิดพลาด หากโควต้าไม่สามารถ เพิ่มขึ้น หรือไม่ได้ระบุหากการดำเนินการสำเร็จ
- รายการที่ 2 คือออบเจ็กต์ที่มีช่องต่อไปนี้
- used (ตัวเลข): ค่าปัจจุบันของ ที่เก็บข้อมูลโควต้า
- allowed (number): ค่าสูงสุดของแอตทริบิวต์ ช่วงโควต้าก่อนที่จะถือว่าเกินโควต้า มีการส่งค่าเดียวกันกับ "อนุญาต" ในออบเจ็กต์คำขอ
- isAllowed (บูลีน): หากมีที่ว่างเหลืออยู่ ในโควต้า -- เป็นจริงตราบเท่าที่ "ใช้แล้ว" น้อยกว่าหรือเท่ากับ "อนุญาต"
- expiryTime (ยาว): การประทับเวลาเป็น มิลลิวินาทีนับตั้งแต่รูปแบบ 1970 เมื่อจะมีการรีเซ็ตที่เก็บข้อมูลโควต้า
- timestamp (long): การประทับเวลาที่ อัปเดตโควต้าแล้ว
ตัวอย่าง
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 โปรดเรียกใช้ query.reset() เมธอดนี้ใช้พารามิเตอร์ 2 ตัว ได้แก่-
ออบเจ็กต์ JSON ที่มีช่องต่อไปนี้
- identifier (สตริง, ต้องระบุ): ตัวระบุที่ไม่ซ้ำกันของโควต้า ในทางปฏิบัติแล้วอาจเป็นรหัสแอปพลิเคชัน ที่อยู่ IP หรือชื่อผู้ใช้
- timeUnit (สตริง, ต้องระบุ): ระยะเวลาที่รวบรวมที่เก็บข้อมูลโควต้า จนกว่าจะรีเซ็ตได้ ค่าที่ถูกต้องคือ "minute," "ชั่วโมง" "วัน" "สัปดาห์" และ "เดือน"
- interval (ตัวเลข ไม่บังคับ): รวมกับ "timeUnit" เพื่อกำหนด ระยะเวลาก่อนที่จะรีเซ็ตโควต้า ค่าเริ่มต้นคือ 1 ตั้งค่าเป็นค่าที่สูงขึ้นเพื่อให้รีเซ็ตได้ เช่น "2 ชั่วโมง" "3 สัปดาห์" เป็นต้น
-
ฟังก์ชัน Callback
- Callback จะใช้ออบเจ็กต์ข้อผิดพลาดเป็นพารามิเตอร์แรกหากรีเซ็ตไม่สำเร็จ
กรณีการใช้งานโควต้าขั้นสูง
เมื่อสร้างโควต้า คุณสามารถรวม "ตัวเลือก" ที่ไม่บังคับ ออบเจ็กต์ ออบเจ็กต์นี้มีพารามิเตอร์ที่ไม่บังคับ 1 รายการ ได้แก่- syncInterval (ตัวเลข, ไม่บังคับ): จำนวนวินาทีที่ฟังก์ชัน การใช้งานโควต้าแบบกระจายจะซิงค์สถานะผ่านเครือข่าย ค่าเริ่มต้นคือ 10