The purpose of this feature is to allow administrators to selectively control which API calls are throttled, without having to rebuild and deploy a new version every time a throttle is changed.
...
Code Block | ||
---|---|---|
| ||
CREATE TABLE `THROTTLE_RULES`( `THROTTLE_ID` int(20), #id -- id of the throttle rule `NORMALIZED_URI` varchar(256) NOT NULL, -- #normalizednormalized api URL, numbers such as {id} replaced with # `MAX_CALLS` int(20) NOT NULL, #maximum -- maximum number of calls per user per URI per bin `CALL_PERIOD_IN_SECONDS` int(20) NOT NULL, #bin -- bin of time in which a user is allowed to make MAX_CALLS API calls. `TIMESTAMP``MODIFIED_ON` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, #Timestamp-- Timestamp of when the row was changed. used as an etag for migration PRIMARY KEY(`THROTTLE_ID`), UNIQUE (`NORMALIZED_URI`) ); |
...
For the service specific throttle, the request URI will be normalized using normalizeMethodSignature() in AccessRecordUtils of the Synapse-Warehouse-Records project (move/refactor?).
...