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 c21130eed9 Docs 202109 (#1067)
* module docstrings

* db schema graph

* dev docs first pass

* dev docs pass 2

* add generated notification to top of generated docs files

* linting

* regen docs

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Sunshine Buchholz <sunshine@20c.com>
2021-10-15 03:25:38 -05:00

81 lines
1.5 KiB
Markdown

Generated from rest_throttles.py on 2021-10-15 07:56:57.376975
# peeringdb_server.rest_throttles
Custom rate limit handlers for the REST API.
# Classes
---
## 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.
---