1
0
mirror of https://github.com/peeringdb/peeringdb.git synced 2024-05-11 05:55:09 +00:00
Files
peeringdb-peeringdb/docs/dev/modules/rest_throttles.py.md
Matt Griswold e2619a001f Support 202201 (#1111)
* remove survey notifications

* substantially rate limit unauthenticated /api/ queries to encourage authenticated queries #853

* move api throttle class configuration to settings (#853)

* #722 with a more generic validation approach

* Add organisations and registered users to "Global System Statistics" in footer #620

* poetry relock

* linting

* regen docs

* fix test data

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: David Poarch <dpoarch@20c.com>
2022-02-08 13:14:27 -06:00

2.2 KiB

Generated from rest_throttles.py on 2022-02-07 09:42:46.681191

peeringdb_server.rest_throttles

Custom rate limit handlers for the REST API.

Classes


APIAnonUserThrottle

APIAnonUserThrottle(rest_framework.throttling.AnonRateThrottle)

Rate limiting for anonymous users.

Methods

allow_request

def allow_request(self, request, view)

Implement the check to see if the request should be throttled.

On success calls throttle_success. On failure calls throttle_failure.


APIUserThrottle

APIUserThrottle(rest_framework.throttling.UserRateThrottle)

Rate limiting for authenticated users.

Methods

allow_request

def allow_request(self, request, view)

Implement the check to see if the request should be throttled.

On success calls throttle_success. On failure calls throttle_failure.


FilterDistanceThrottle

FilterDistanceThrottle(peeringdb_server.rest_throttles.FilterThrottle)

Rate limiting for ?distance= queries.

FilterThrottle

FilterThrottle(rest_framework.throttling.SimpleRateThrottle)

Base class for API throttling targeted at specific query filters.

Scope name will be 'filter_{self.filter_name}'

Methods

_init_

def __init__(self)

Initialize self. See help(type(self)) for accurate signature.


allow_request

def allow_request(self, request, view)

Implement the check to see if the request should be throttled.

On success calls throttle_success. On failure calls throttle_failure.


get_cache_key

def get_cache_key(self, request, view)

Should return a unique cache-key which can be used for throttling. Must be overridden.

May return None if the request should not be throttled.


IXFImportThrottle

IXFImportThrottle(rest_framework.throttling.UserRateThrottle)

Limits the rate of API calls that may be made by a given user.

The user id will be used as a unique cache key if the user is authenticated. For anonymous requests, the IP address of the request will be used.

Methods

get_cache_key

def get_cache_key(self, request, view)

Should return a unique cache-key which can be used for throttling. Must be overridden.

May return None if the request should not be throttled.