* feat: add rate limit middleware * chore: update vendor dir * chore: update readme with new dependency * chore: add rate limit infos to swagger.md file * refactor: add ipv6 mask limiter option Add IPv6 CIDR /64 mask * refactor: increase rate limit to 1000 Address https://github.com/superseriousbusiness/gotosocial/pull/741#discussion_r945584800 Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com>
1.2 KiB
API Documentation
Rate limit
To prevent abuse of the API an IP-based HTTP rate limit is in place, a maximum of 300 requests in a 5 minutes time window are allowed, every response will include the current status of the rate limit with the following headers:
x-ratelimit-limit
maximum number of requests allowed per time period (fixed)x-ratelimit-remaining
number of remaining requests that can still be performedx-ratelimit-reset
unix timestamp when the rate limit will reset
In case the rate limit is exceeded an HTTP 429 error is returned to the caller.
GoToSocial uses go-swagger to generate a V2 OpenAPI specification document from code annotations.
The resulting API documentation is rendered below, for quick reference.
If you'd like to do more with the spec, you can also view the swagger.yaml directly, and then paste it into something like the Swagger Editor in order to autogenerate GoToSocial API clients in different languages, convert the doc to JSON or OpenAPI v3 specification, etc. See here for more.
!!swagger swagger.yaml!!