bigchicchicken/api-platform-rate-limiter-bundle

Bundle to controls how frequently certain APIs are allowed to be called for ApiPlatform

v1.0.0 2022-09-21 12:45 UTC

This package is auto-updated.

Last update: 2024-04-30 00:33:59 UTC


README

Packagist

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.