Enabling rate-limiting in Zato means that access to APIs can be throttled per endpoint, user or service - including options to make limits apply to specific IP addresses only.
API rate limiting works on several levels, starting from per-endpoint limits, then per-user limits followed by per-service limits.
Different limits can be configured depending on the caller's IP address thus allowing greater flexibility.
Approximate and exact rate limits help in regulating API requests speed.
API rate limiting applies to REST, SOAP and JSON-RPC endpoints only, it is not used with other API endpoints, such as AMQP, IBM MQ, SAP or task scheduler.
Configuration for each type of object is independent - within the same invocation some limits may be exact, some may be approximate.
A unit of time is 'm', 'h' or 'd', depending on whether the limit is per minute, hour or day, respectively.
Zato server logs contain the information about the rate limit, along with other details so that API authors can correlate what callers get with the very rate-limiting definition that prevented them from accessing the service.
Performing exact or approximate rate limits on incoming API requests depends on the project's requirement.
Python code can be used for defining limits in the Zato Dashboard.