bigchicchicken / api-platform-rate-limiter-bundle
Bundle to controls how frequently certain APIs are allowed to be called for ApiPlatform
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
Type:api-platform-bundle
Requires
- php: >=8.1
- api-platform/core: ^3.0
- symfony/dependency-injection: ^6.1
- symfony/framework-bundle: ^6.1
- symfony/http-kernel: ^6.1
- symfony/rate-limiter: ^6.1
- symfony/yaml: ^6.1
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/browser-kit: ^6.1
- symfony/http-client: ^6.1
- symfony/phpunit-bridge: ^6.1
README
Bundle to controls how frequently certain APIs are allowed to be called for ApiPlatform.
Installation
Install ApiPlatformRateLimiterBundle library using Composer:
composer require bigchicchicken/api-platform-rate-limiter-group-bundle
Add/Check activation in the file config/bundles.php
:
// config/bundles.php return [ // ... ApiPlatformRateLimiterBundle\ApiPlatformRateLimiterBundle::class => ['all' => true], ];
Configure the rate limiter of Symfony :
# config/packages/rate_limiter.yaml framework: rate_limiter: fixed_window_5_requests_every_10_minutes: policy: 'fixed_window' limit: 5 interval: '10 minutes'
And pass the rate limiter to your API's operation :
<?php // src/Entity/MyClass.php namespace App\Entity; use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\GetCollection; #[ApiResource] #[GetCollection(extraProperties: [ 'rate_limiter' => 'fixed_window_5_requests_every_10_minutes' ])] class MyClass { // ... }
License
This is completely free and released under the MIT License.