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