Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rate Limiting Specifications #13

Open
8 tasks
git-union bot opened this issue Mar 7, 2024 · 0 comments
Open
8 tasks

Rate Limiting Specifications #13

git-union bot opened this issue Mar 7, 2024 · 0 comments

Comments

@git-union
Copy link
Contributor

git-union bot commented Mar 7, 2024

Rate Limiting Specifications

As a service provider, I want to implement rate limiting on my REST API endpoints to ensure fair usage, prevent abuse, and help maintain the quality of service for all users.

Acceptance Criteria

  • The API enforces a limit of 100 requests per minute per user.
  • Upon reaching the limit, the API returns a 429 (Too Many Requests) HTTP status code.
  • Rate limiting headers such as X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset are included in the response.
  • Users are informed of the duration after which they can resume making requests once rate limited.
  • The system supports a mechanism to whitelist certain users or IPs from rate limiting.
  • The API provides endpoint-specific rate limits if necessary.
  • The rate limiting system is scalable and can handle an increase in traffic.
  • The implementation of rate limiting does not significantly impact the response time of the API.
sequenceDiagram
  participant User
  participant API
  participant RateLimiter
  User->>API: Request resources
  API->>RateLimiter: Check user's request count
  RateLimiter->>API: User under limit
  API->>User: Provide requested resources
  Note over User,API: User makes too many requests
  RateLimiter-)API: User over limit
  API->>User: Return 429 Too Many Requests
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

0 participants