{"id":72116,"date":"2023-08-21T14:27:47","date_gmt":"2023-08-21T13:27:47","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=72116&#038;preview=true&#038;preview_id=72116"},"modified":"2023-09-08T14:48:15","modified_gmt":"2023-09-08T13:48:15","slug":"limitation-debit-api-laravel","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/","title":{"rendered":"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel"},"content":{"rendered":"<p>La limitation du d\u00e9bit est essentielle pour prot\u00e9ger les ressources d&rsquo;une application ou d&rsquo;un site web contre une utilisation excessive ou inappropri\u00e9e. Qu&rsquo;elle r\u00e9sulte d&rsquo;une intervention humaine malveillante, d&rsquo;une attaque de robots ou d&rsquo;une vuln\u00e9rabilit\u00e9 n\u00e9glig\u00e9e, l&rsquo;utilisation abusive des ressources peut entraver l&rsquo;acc\u00e8s l\u00e9gitime \u00e0 votre application et introduire de graves vuln\u00e9rabilit\u00e9s.<\/p>\n<p>Cet article explique comment ajouter une limitation de taux \u00e0 une API dans une application Laravel.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Limitez le trafic de votre API dans Laravel<\/h2>\n<p>La limitation de d\u00e9bit est un m\u00e9canisme con\u00e7u pour att\u00e9nuer l&rsquo;exploitation des ressources de votre application. Bien qu&rsquo;il ait de nombreuses utilisations, il est particuli\u00e8rement utile pour les API publiques dans les grands syst\u00e8mes \u00e9volutifs. Elle garantit que tous les utilisateurs l\u00e9gitimes conservent un acc\u00e8s \u00e9quitable aux ressources du syst\u00e8me.<\/p>\n<p>La limitation de d\u00e9bit est \u00e9galement cruciale pour la s\u00e9curit\u00e9, le contr\u00f4le des co\u00fbts et la stabilit\u00e9 g\u00e9n\u00e9rale du syst\u00e8me. Elle peut aider \u00e0 pr\u00e9venir les attaques bas\u00e9es sur les requ\u00eates, telles que les attaques par d\u00e9ni de service distribu\u00e9 (DDoS). Cette attaque repose sur l&rsquo;envoi de requ\u00eates r\u00e9p\u00e9t\u00e9es pour submerger et perturber l&rsquo;acc\u00e8s \u00e0 une application ou \u00e0 un serveur de site web.<\/p>\n<p>Il existe plusieurs m\u00e9thodes pour mettre en \u0153uvre la limitation de d\u00e9bit. Vous pouvez utiliser des variables qui caract\u00e9risent le demandeur pour d\u00e9terminer qui peut acc\u00e9der \u00e0 votre application et \u00e0 quelle fr\u00e9quence. Les variables les plus courantes sont les suivantes<\/p>\n<ul>\n<li><strong>Adresse IP<\/strong> &#8211; La mise en \u0153uvre de limites de taux bas\u00e9es sur les adresses IP vous permet de restreindre le nombre de requ\u00eates par adresse. Cette m\u00e9thode est particuli\u00e8rement utile lorsque les utilisateurs peuvent acc\u00e9der \u00e0 une application sans fournir d&rsquo;informations d&rsquo;identification.<\/li>\n<li><strong>Cl\u00e9 API<\/strong> &#8211; Limiter l&rsquo;acc\u00e8s via des cl\u00e9s API consiste \u00e0 fournir au demandeur des cl\u00e9s API pr\u00e9-g\u00e9n\u00e9r\u00e9es et \u00e0 \u00e9tablir des limites de taux par cl\u00e9. Avec cette approche, vous pouvez \u00e9galement appliquer diff\u00e9rents niveaux d&rsquo;acc\u00e8s aux cl\u00e9s API g\u00e9n\u00e9r\u00e9es.<\/li>\n<li><strong>ID client<\/strong> &#8211; Vous pouvez \u00e9galement pr\u00e9g\u00e9n\u00e9rer un ID client qu&rsquo;un utilisateur peut int\u00e9grer dans l&rsquo;en-t\u00eate ou le corps des requ\u00eates d&rsquo;API. Cette m\u00e9thode vous permet de d\u00e9finir des niveaux d&rsquo;acc\u00e8s par ID afin de garantir qu&rsquo;aucun client ne puisse monopoliser les ressources du syst\u00e8me.<\/li>\n<\/ul>\n<h3>Middleware Laravel<\/h3>\n<p>Le middleware fournit un m\u00e9canisme pratique pour inspecter et filtrer les <a href=\"https:\/\/kinsta.com\/fr\/blog\/requetes-http-javascript\/\">requ\u00eates HTTP<\/a> entrant dans une application. Il s&rsquo;agit essentiellement d&rsquo;une couche de code entre l&rsquo;application et son infrastructure sous-jacente pour permettre la communication entre ses ressources.<\/p>\n<h2>Comment mettre en place des limites de d\u00e9bit<\/h2>\n<p>Ce tutoriel utilise une mini-biblioth\u00e8que API existante sur le framework Laravel 10 pour d\u00e9montrer l&rsquo;utilisation de Laravel Throttle. L&rsquo;exemple de projet de d\u00e9part contient les impl\u00e9mentations CRUD (create, read, update, delete) de base n\u00e9cessaires pour g\u00e9rer les livres dans une collection et deux routes suppl\u00e9mentaires pour d\u00e9montrer certains concepts de limitation de taux.<\/p>\n<h3>Pr\u00e9-requis<\/h3>\n<p>Ce tutoriel suppose que vous \u00eates familier avec les bases du d\u00e9veloppement d&rsquo;API dans Laravel. Assurez-vous que vous disposez des \u00e9l\u00e9ments suivants :<\/p>\n<ul>\n<li>PHP 8.2, <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a> et <a href=\"https:\/\/laravel.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel<\/a> install\u00e9s et configur\u00e9s sur votre machine locale<\/li>\n<li>Un compte <a href=\"https:\/\/kinsta.com\/fr\/inscription\/\">Kinsta<\/a> actif<\/li>\n<li>Un compte sur <a href=\"https:\/\/github.com\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub<\/a>, <a href=\"https:\/\/gitlab.com\" target=\"_blank\" rel=\"noopener noreferrer\">GitLab<\/a> ou <a href=\"https:\/\/bitbucket.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bitbucket<\/a> pour pousser votre code<\/li>\n<\/ul>\n<p>Vous utilisez \u00e9galement <a href=\"https:\/\/my.kinsta.com?lang=fr\">MyKinsta<\/a> pour configurer et d\u00e9ployer cette API. Vous pouvez suivre le <a href=\"https:\/\/github.com\/VirtuaCreative\/kinsta-library-api-template\" target=\"_blank\" rel=\"noopener noreferrer\">mod\u00e8le de projet<\/a> fourni et pr\u00e9visualiser le r\u00e9sultat final \u00e0 partir du <a href=\"https:\/\/github.com\/VirtuaCreative\/kinsta-library-api\" target=\"_blank\" rel=\"noopener noreferrer\">code source complet<\/a>.<\/p>\n<h2>Configuration de l&rsquo;application Laravel<\/h2>\n<ol start=\"1\">\n<li>Pour commencer, clonez le <a href=\"https:\/\/github.com\/VirtuaCreative\/kinsta-library-api-template\" target=\"_blank\" rel=\"noopener noreferrer\">mod\u00e8le de projet<\/a>.<\/li>\n<li>Ensuite, cr\u00e9ez un fichier <strong>.env<\/strong> dans le r\u00e9pertoire racine du projet et copiez-y le contenu de <strong>.env.example<\/strong>.<\/li>\n<li>Ensuite, terminez l&rsquo;installation en utilisant les commandes suivantes pour installer les d\u00e9pendances de l&rsquo;application et g\u00e9n\u00e9rer la cl\u00e9 d&rsquo;application.<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">composer install\nphp artisan key:generate<\/code><\/pre>\n<p>Si cette commande n&rsquo;ajoute pas automatiquement la cl\u00e9 d&rsquo;application \u00e0 votre fichier <strong>.env<\/strong>, ex\u00e9cutez <code>php artisan key:generate --show<\/code>, copiez la cl\u00e9 g\u00e9n\u00e9r\u00e9e et collez-la dans votre fichier <strong>.env<\/strong> comme valeur pour <code>APP_KEY<\/code>.<\/p>\n<ol start=\"4\">\n<li>Une fois l&rsquo;installation des d\u00e9pendances et la g\u00e9n\u00e9ration de la cl\u00e9 d&rsquo;application termin\u00e9es, d\u00e9marrez l&rsquo;application \u00e0 l&rsquo;aide de la commande suivante :<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">php artisan serve<\/code><\/pre>\n<p>Cette commande d\u00e9marre l&rsquo;application et la rend accessible via le navigateur \u00e0 l&rsquo;adresse <code>https:\/\/127.0.0.1:8000<\/code>.<\/p>\n<ol start=\"5\">\n<li>Visitez l&rsquo;URL pour confirmer que la page de bienvenue de Laravel s&rsquo;affiche :<\/li>\n<\/ol>\n<figure>\n<p><figure style=\"width: 1279px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-welcome-page.png\" alt=\"L'\u00e9cran de bienvenue de Laravel\" width=\"1279\" height=\"801\"><figcaption class=\"wp-caption-text\">L&rsquo;\u00e9cran de bienvenue de Laravel<\/figcaption><\/figure><\/figure>\n<h2>Configuration de la base de donn\u00e9es<\/h2>\n<p>Configurons et mettons en place la base de donn\u00e9es de l&rsquo;application dans <a href=\"https:\/\/my.kinsta.com\/login?lang=fr\">MyKinsta<\/a>.<\/p>\n<ol start=\"1\">\n<li>Naviguez vers le tableau de bord de votre compte MyKinsta et cliquez sur le bouton <strong>Ajouter un service<\/strong>:<\/li>\n<\/ol>\n<figure>\n<p><figure style=\"width: 1582px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-mykinsta-services.png\" alt=\"Tableau de bord MyKinsta avec plusieurs services configur\u00e9s.\" width=\"1582\" height=\"476\"><figcaption class=\"wp-caption-text\">Tableau de bord MyKinsta avec plusieurs services configur\u00e9s.<\/figcaption><\/figure><\/figure>\n<ol start=\"2\">\n<li>Dans la liste <strong>Ajouter un service<\/strong>, cliquez sur <strong>Base de donn\u00e9es<\/strong> et configurez les param\u00e8tres pour d\u00e9marrer votre instance de base de donn\u00e9es :<\/li>\n<\/ol>\n<figure>\n<p><figure style=\"width: 786px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-mykinsta-database.png\" alt=\"Configuration de la base de donn\u00e9es MyKinsta.\" width=\"786\" height=\"1266\"><figcaption class=\"wp-caption-text\">Configuration de la base de donn\u00e9es MyKinsta.<\/figcaption><\/figure><\/figure>\n<p>Ce tutoriel utilise MariaDB, mais vous pouvez choisir n&rsquo;importe quelle option de base de donn\u00e9es support\u00e9e par Laravel que Kinsta fournit.<\/p>\n<ol start=\"3\">\n<li>Une fois que vous avez saisi les d\u00e9tails de votre base de donn\u00e9es, cliquez sur le bouton <strong>Continuer<\/strong> pour finaliser le processus.<\/li>\n<\/ol>\n<p>Les bases de donn\u00e9es provisionn\u00e9es sur Kinsta ont des r\u00e9glages de connexion internes et externes. Vous devez utiliser les param\u00e8tres de connexion internes pour les applications h\u00e9berg\u00e9es dans le m\u00eame compte Kinsta et les param\u00e8tres externes pour les connexions externes. Par cons\u00e9quent, utilisez les informations d&rsquo;identification de la base de donn\u00e9es externe de Kinsta pour votre application.<\/p>\n<ol start=\"4\">\n<li>Copiez et mettez \u00e0 jour les informations d&rsquo;identification <strong>.env<\/strong> de la base de donn\u00e9es de l&rsquo;application avec les informations d&rsquo;identification externes indiqu\u00e9es dans la capture d&rsquo;\u00e9cran ci-dessous :<\/li>\n<\/ol>\n<figure>\n<p><figure style=\"width: 1590px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-mykinsta-database-settings.png\" alt=\"D\u00e9tails de la configuration de la base de donn\u00e9es MyKinsta.\" width=\"1590\" height=\"1133\"><figcaption class=\"wp-caption-text\">D\u00e9tails de la configuration de la base de donn\u00e9es MyKinsta.<\/figcaption><\/figure><\/figure>\n<pre><code class=\"language-env\">DB_CONNECTION=mysql\nDB_HOST=your_host_name\nDB_PORT=your_port\nDB_DATABASE=your_database_info\nDB_USERNAME=your_username\nDB_PASSWORD=your_password<\/code><\/pre>\n<ol start=\"5\">\n<li>Apr\u00e8s avoir rempli les informations d&rsquo;identification de la base de donn\u00e9es, testez la connexion en appliquant la migration de la base de donn\u00e9es \u00e0 l&rsquo;aide de la commande ci-dessous :<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<p>Si tout fonctionne correctement, vous devriez obtenir une r\u00e9ponse similaire \u00e0 celle pr\u00e9sent\u00e9e ci-dessous.<\/p>\n<figure>\n<p><figure style=\"width: 1999px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-terminal-database-migration.png\" alt=\"Migration r\u00e9ussie de la base de donn\u00e9es sur un terminal.\" width=\"1999\" height=\"450\"><figcaption class=\"wp-caption-text\">Migration r\u00e9ussie de la base de donn\u00e9es sur un terminal.<\/figcaption><\/figure><\/figure>\n<ol start=\"6\">\n<li>Ensuite, utilisez la commande suivante pour lister les itin\u00e9raires d&rsquo;application et voir les itin\u00e9raires d\u00e9j\u00e0 mis en \u0153uvre.<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">php artisan route:list<\/code><\/pre>\n<p>Vous devriez maintenant voir les points de terminaison de l&rsquo;API disponibles :<\/p>\n<figure>\n<p><figure style=\"width: 1999px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-terminal-api-endpoints.png\" alt=\"Application route list sur le terminal.\" width=\"1999\" height=\"411\"><figcaption class=\"wp-caption-text\">Application route list sur le terminal.<\/figcaption><\/figure><\/figure>\n<ol start=\"7\">\n<li>Lancez l&rsquo;application et v\u00e9rifiez que tout fonctionne toujours correctement. Vous pouvez tester ces points d&rsquo;acc\u00e8s via le terminal \u00e0 l&rsquo;aide d&rsquo;un outil comme <a href=\"https:\/\/www.postman.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Postman<\/a> ou CURL.<\/li>\n<\/ol>\n<h2>Comment limiter le d\u00e9bit dans une application Laravel<\/h2>\n<p>Plusieurs techniques de limitation de d\u00e9bit sont disponibles pour les applications Laravel. Vous pouvez bloquer un ensemble d&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/blog\/ip-statiques-ou-dynamiques\/\">adresses IP<\/a> ou appliquer des limites de requ\u00eates bas\u00e9es sur la dur\u00e9e en fonction de l&rsquo;adresse IP ou de l&rsquo;identifiant de l&rsquo;utilisateur. Ensuite, vous appliquerez chacune de ces m\u00e9thodes.<\/p>\n<ol start=\"1\">\n<li>Installez le paquet Laravel Throttle \u00e0 l&rsquo;aide de la commande suivante :<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">composer require \"graham-campbell\/throttle:^10.0\"<\/code><\/pre>\n<ol start=\"2\">\n<li>Vous pouvez \u00e9galement apporter des modifications suppl\u00e9mentaires aux configurations de Laravel Throttle en publiant le fichier <code>vendor configurations<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">php artisan vendor:publish --provider=\"GrahamCampbell\\Throttle\\ThrottleServiceProvider\"<\/code><\/pre>\n<h3>Comment bloquer des adresses IP<\/h3>\n<p>Une technique de limitation du d\u00e9bit vous permet de bloquer les requ\u00eates provenant d&rsquo;un ensemble sp\u00e9cifique d&rsquo;adresses IP.<\/p>\n<ol start=\"1\">\n<li>Pour commencer, cr\u00e9ez l&rsquo;intergiciel n\u00e9cessaire :<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">php artisan make:middleware RestrictMiddleware<\/code><\/pre>\n<ol start=\"2\">\n<li>Ensuite, ouvrez le fichier d&rsquo;intergiciel <strong>app\/Http\/Middleware\/RestrictMiddleware.php<\/strong> cr\u00e9\u00e9 et remplacez le code de la fonction <code>handle<\/code> par l&rsquo;extrait ci-dessous. Assurez-vous d&rsquo;ajouter <code>use App;<\/code> \u00e0 la liste des importations en haut du fichier.<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$restrictedIps = ['127.0.0.1', '102.129.158.0'];\nif(in_array($request-&gt;ip(), $restrictedIps)){\n  App::abort(403, 'Request forbidden');\n}\nreturn $next($request);<\/code><\/pre>\n<ol start=\"3\">\n<li>Dans le fichier <strong>app\/Http\/Kernel.php<\/strong>, cr\u00e9ez un alias pour cette application middleware en mettant \u00e0 jour le tableau <code>middlewareAliases<\/code> comme suit :\n<pre><code class=\"language-php\">protected $middlewareAliases = [\n. . .\n'custom.restrict' =&gt; App\\Http\\Middleware\\Restrict\\Middleware::class,\n];<\/code><\/pre>\n<ol start=\"4\">\n<li>Ensuite, appliquez cet intergiciel \u00e0 l&rsquo;adresse <code>\/restricted-route<\/code> dans le fichier <strong>routes\/api.php<\/strong> comme suit et testez :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">Route::middleware(['custom.restrict'])-&gt;group(function () {\n  Route::get('\/restricted-route', [BookController::class, 'getBooks']);\n});<\/code><\/pre>\n<p>Lorsqu&rsquo;il fonctionne correctement, cet intergiciel bloque toutes les requ\u00eates provenant des IP du tableau <code> $restrictedIps<\/code>: <code>127.0.0.1<\/code> et <code>102.129.158.0<\/code>. Les requ\u00eates provenant de ces IP renvoient une r\u00e9ponse <strong>403 Forbidden<\/strong>, comme indiqu\u00e9 ci-dessous :<\/p>\n<figure>\n<p><figure style=\"width: 1136px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-postman-returns-403.png\" alt=\"Une r\u00e9ponse 403 Forbidden pour le point d'acc\u00e8s GET \/restricted-route sur Postman\" width=\"1136\" height=\"807\"><figcaption class=\"wp-caption-text\">Une r\u00e9ponse 403 Forbidden pour le point d&rsquo;acc\u00e8s GET \/restricted-route sur Postman<\/figcaption><\/figure><\/figure>\n<h3>Comment limiter les requ\u00eates par adresse IP<\/h3>\n<p>Ensuite, vous pouvez limiter les requ\u00eates en fonction de l&rsquo;adresse IP de l&rsquo;utilisateur.<\/p>\n<ol start=\"1\">\n<li>Appliquez l&rsquo;intergiciel Throttle aux routes <code>GET<\/code> et <code>PATCH<\/code> du point d&rsquo;acc\u00e8s <code>\/book<\/code> dans <strong>routes\/api.php<\/strong>:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">Route::middleware(['throttle:minute'])-&gt;group(function () {\n  Route::get('\/book', [BookController::class, 'getBooks']);\n});\n\nRoute::middleware(['throttle:5,1'])-&gt;group(function () {\n  Route::patch('\/book', [BookController::class, 'updateBook']);\n});<\/code><\/pre>\n<ol start=\"2\">\n<li>Vous devez \u00e9galement mettre \u00e0 jour la fonction <code>configureRateLimiting<\/code> dans le fichier <strong>app\/Providers\/RouteServiceProvider<\/strong> avec l&rsquo;intergiciel que vous avez ajout\u00e9 aux routes ci-dessus.<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\u2026 \nRateLimiter::for('minute', function (Request $request) {\n  return Limit::perMinute(5)-&gt;by($request-&gt;ip());\n});<\/code><\/pre>\n<p>Cette configuration limite les requ\u00eates vers le point de terminaison <code>\/book GET<\/code> \u00e0 5 par minute, comme indiqu\u00e9 ci-dessous.<\/p>\n<figure>\n<p><figure style=\"width: 1142px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-postman-returns-429.png\" alt=\"Une r\u00e9ponse 429 Too Many Requests pour le point d'acc\u00e8s \/book GET sur Postman.\" width=\"1142\" height=\"805\"><figcaption class=\"wp-caption-text\">Une r\u00e9ponse 429 Too Many Requests pour le point d&rsquo;acc\u00e8s \/book GET sur Postman.<\/figcaption><\/figure><\/figure>\n<h3>Comment limiter les requ\u00eates en fonction de l&rsquo;identifiant de l&rsquo;utilisateur et des sessions<\/h3>\n<ol start=\"1\">\n<li>Pour limiter le d\u00e9bit en utilisant les param\u00e8tres <code>user_id<\/code> et <code>session<\/code>, mettez \u00e0 jour la fonction <code>configureRateLimiting<\/code> dans le fichier <strong>app\/Providers\/RouteServiceProvider<\/strong> avec les limiteurs et variables suppl\u00e9mentaires suivants :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">...\nRateLimiter::for('user', function (Request $request) {\n  return Limit::perMinute(10)-&gt;by($request-&gt;user()?-&gt;id ?: $request-&gt;ip());\n});\nRateLimiter::for('session', function (Request $request) {\n  return Limit::perMinute(15)-&gt;by($request-&gt;session()-&gt;get('key') ?: $request-&gt;ip());\n});<\/code><\/pre>\n<ol start=\"2\">\n<li>Enfin, appliquez ce code aux routes <code>\/book\/{id} GET<\/code> et <code>\/book POST<\/code> dans le fichier <code>routes\/api.php<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">Route::middleware(['throttle:user'])-&gt;group(function () {\n  Route::get('\/book\/{id}', [BookController::class, 'getBook']);\n});\nRoute::middleware(['throttle:session'])-&gt;group(function () {\n  Route::post('\/book', [BookController::class, 'createBook']);\n});<\/code><\/pre>\n<p>Ce code limite les requ\u00eates utilisant <code>user_id<\/code> et <code>session<\/code>, respectivement.<\/p>\n<h3>M\u00e9thodes suppl\u00e9mentaires dans Throttle<\/h3>\n<p>Laravel Throttle propose plusieurs <a href=\"https:\/\/github.com\/GrahamCampbell\/Laravel-Throttle#usage\" target=\"_blank\" rel=\"noopener noreferrer\">m\u00e9thodes suppl\u00e9mentaires<\/a> pour un meilleur contr\u00f4le de votre impl\u00e9mentation de limitation de taux. Ces m\u00e9thodes sont les suivantes :<\/p>\n<ul>\n<li><code>attempt<\/code> &#8211; Acc\u00e8de au point de terminaison, incr\u00e9mente le nombre d&rsquo;occurrences et renvoie un bool\u00e9en indiquant si la limite d&rsquo;occurrences configur\u00e9e a \u00e9t\u00e9 d\u00e9pass\u00e9e.<\/li>\n<li><code>hit<\/code> &#8211; Touche le Throttle, incr\u00e9mente le nombre de hits et renvoie <code>$this<\/code> pour permettre un autre appel de m\u00e9thode (facultatif).<\/li>\n<li><code>clear<\/code> &#8211; R\u00e9initialise le compte Throttle \u00e0 z\u00e9ro et renvoie <code>$this<\/code> afin que vous puissiez effectuer un autre appel de m\u00e9thode si vous le souhaitez.<\/li>\n<li><code>count<\/code> &#8211; Renvoie le nombre total d&rsquo;occurrences du Throttle.<\/li>\n<li><code>check<\/code> &#8211; Renvoie un bool\u00e9en indiquant si la limite d&rsquo;acc\u00e8s au Throttle a \u00e9t\u00e9 d\u00e9pass\u00e9e.<\/li>\n<\/ul>\n<ol start=\"1\">\n<li>Pour explorer la limitation de d\u00e9bit \u00e0 l&rsquo;aide de ces m\u00e9thodes, cr\u00e9ez une application middleware appel\u00e9e CustomMiddleware \u00e0 l&rsquo;aide de la commande ci-dessous :<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">php artisan make:middleware CustomMiddleware<\/code><\/pre>\n<ol start=\"2\">\n<li>Ensuite, ajoutez les fichiers d&rsquo;importation suivants au fichier middleware nouvellement cr\u00e9\u00e9 dans <strong>app\/Http\/Middleware\/CustomMiddleware.php<\/strong>:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">use GrahamCampbell\\Throttle\\Facades\\Throttle;\nuse App;<\/code><\/pre>\n<ol start=\"3\">\n<li>Ensuite, remplacez le contenu de la m\u00e9thode <code>handle<\/code> par l&rsquo;extrait de code suivant :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">$throttler = Throttle::get($request, 5, 1);\nThrottle::attempt($request);\nif(!$throttler-&gt;check()){\n  App::abort(429, 'Too many requests');\n}\nreturn $next($request);<\/code><\/pre>\n<ol start=\"4\">\n<li>Dans le fichier <strong>app\/Http\/Kernel.php<\/strong>, cr\u00e9ez un alias pour cette application middleware en mettant \u00e0 jour le tableau <code>middlewareAliases<\/code> comme suit.<\/li>\n<\/ol>\n<pre><code class=\"language-php\">protected $middlewareAliases = [\n. . .\n'custom.throttle' =&gt; \\App\\Http\\Middleware\\CustomMiddleware::class, \n];<\/code><\/pre>\n<ol start=\"5\">\n<li>Ensuite, appliquez cet intergiciel \u00e0 l&rsquo;adresse <code>\/custom-route<\/code> dans le fichier <strong>routes\/api.php<\/strong>:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">Route::middleware(['custom.throttle'])-&gt;group(function () {\n  Route::get('\/custom-route', [BookController::class, 'getBooks']);\n});<\/code><\/pre>\n<p>L&rsquo;intergiciel personnalis\u00e9 qui vient d&rsquo;\u00eatre impl\u00e9ment\u00e9 v\u00e9rifie si la limite de l&rsquo;\u00e9tranglement a \u00e9t\u00e9 d\u00e9pass\u00e9e \u00e0 l&rsquo;aide de la commande <code>check<\/code> method. If the limit is exceeded, it responds with a 429 error. Otherwise, it allows the request to continue.<\/p>\n<h2>Comment d\u00e9ployer l&rsquo;application sur le serveur Kinsta<\/h2>\n<p>Maintenant que vous avez explor\u00e9 comment mettre en \u0153uvre la limitation de d\u00e9bit dans une application Laravel, d\u00e9ployez l&rsquo;application sur le serveur Kinsta pour la rendre accessible globalement.<\/p>\n<ol start=\"1\">\n<li>Commencez par pousser le code mis \u00e0 jour sur <a href=\"https:\/\/kinsta.com\/fr\/blog\/gitlab-vs-github\/\">GitHub, GitLab<\/a> ou <a href=\"https:\/\/kinsta.com\/fr\/blog\/bitbucket-vs-github\/\">Bitbucket<\/a>.<\/li>\n<li>Depuis votre tableau de bord Kinsta, cliquez sur le bouton <strong>Ajouter un service<\/strong> et s\u00e9lectionnez <strong>Application<\/strong> dans la liste. Liez votre compte Git \u00e0 votre compte Kinsta et s\u00e9lectionnez le bon d\u00e9p\u00f4t \u00e0 d\u00e9ployer.<\/li>\n<li>Sous <strong>D\u00e9tails de base<\/strong>, nommez l&rsquo;application et choisissez votre centre de donn\u00e9es pr\u00e9f\u00e9r\u00e9. Assurez-vous \u00e9galement d&rsquo;avoir ajout\u00e9 les variables d&rsquo;environnement n\u00e9cessaires \u00e0 l&rsquo;application. Celles-ci correspondent aux variables pr\u00e9sentes dans votre fichier <strong>.env<\/strong> local : les variables de configuration <code>APP_KEY<\/code> et de la base de donn\u00e9es.<\/li>\n<\/ol>\n<figure>\n<p><figure style=\"width: 790px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-mykinsta-app-details.png\" alt=\"D\u00e9tails de l'application sur MyKinsta.\" width=\"790\" height=\"1262\"><figcaption class=\"wp-caption-text\">D\u00e9tails de l&rsquo;application sur MyKinsta.<\/figcaption><\/figure><\/figure>\n<ol start=\"1\">\n<li>Cliquez sur le bouton <strong>Continuer<\/strong> pour s\u00e9lectionner les variables de l&rsquo;environnement de construction. Vous pouvez laisser les valeurs par d\u00e9faut, car Kinsta remplit automatiquement les param\u00e8tres n\u00e9cessaires.<\/li>\n<li>Sur l&rsquo;onglet <strong>Processus<\/strong>, vous pouvez laisser les valeurs par d\u00e9faut ou entrer un nom pour votre processus. Vous pouvez \u00e9galement s\u00e9lectionner les tailles de pod et d&rsquo;instance sur cet onglet.<\/li>\n<li>Enfin, l&rsquo;onglet <strong>Paiement<\/strong> affiche un r\u00e9sum\u00e9 de vos s\u00e9lections. Ajoutez votre option de paiement pr\u00e9f\u00e9r\u00e9e pour finaliser le processus.<\/li>\n<li>Une fois le processus termin\u00e9, cliquez sur l&rsquo;onglet <strong>Applications<\/strong> pour afficher la liste des applications d\u00e9ploy\u00e9es.<\/li>\n<li>Cliquez sur le nom de l&rsquo;application pour afficher les d\u00e9tails de son d\u00e9ploiement, comme indiqu\u00e9 ci-dessous. Vous pouvez utiliser l&rsquo;URL de l&rsquo;application pour y acc\u00e9der.<\/li>\n<\/ol>\n<figure>\n<p><figure style=\"width: 1587px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-throttle-mykinsta-app-deployments.png\" alt=\"D\u00e9tails du d\u00e9ploiement sur le tableau de bord MyKinsta.\" width=\"1587\" height=\"836\"><figcaption class=\"wp-caption-text\">D\u00e9tails du d\u00e9ploiement sur le tableau de bord MyKinsta.<\/figcaption><\/figure><\/figure>\n<h2>Comment tester l&rsquo;application<\/h2>\n<ol start=\"1\">\n<li>Pour tester l&rsquo;application localement, utilisez la commande <code>php artisan serve<\/code>.<\/li>\n<\/ol>\n<p>Cette commande rend le navigateur de votre application accessible sur <code>http:\/\/localhost:8000<\/code>. Vous pouvez tester les points d&rsquo;extr\u00e9mit\u00e9 de l&rsquo;API pour lesquels vous avez impl\u00e9ment\u00e9 la limitation de d\u00e9bit en effectuant des appels r\u00e9p\u00e9t\u00e9s pour d\u00e9clencher la fonctionnalit\u00e9 de limitation de d\u00e9bit.<\/p>\n<p>Le serveur Kinsta affiche une r\u00e9ponse <strong>Acc\u00e8s interdit<\/strong> parce que vous n&rsquo;avez pas ajout\u00e9 les d\u00e9tails de configuration qui indiquent \u00e0 Kinsta comment servir l&rsquo;application. Ajoutez ces d\u00e9tails maintenant.<\/p>\n<ol start=\"2\">\n<li>Cr\u00e9ez un fichier <code>.htaccess<\/code> dans le r\u00e9pertoire racine de votre application et ajoutez-y le code suivant :<\/li>\n<\/ol>\n<pre><code class=\"language-apacheconf\"> &lt;IfModule mod_rewrite.c&gt;\n  RewriteEngine On\n  RewriteRule ^(.*)$ public\/$1 [L]\n&lt;\/IfModule&gt;<\/code><\/pre>\n<ol start=\"3\">\n<li>Poussez ces changements sur GitHub et Kinsta se d\u00e9ploie automatiquement pour mettre en \u0153uvre le changement.<\/li>\n<li>Maintenant, ouvrez l&rsquo;application en utilisant l&rsquo;URL fournie et assurez-vous que vous voyez la page de bienvenue de Laravel.<\/li>\n<\/ol>\n<p>Vous pouvez maintenant tester les points d&rsquo;extr\u00e9mit\u00e9 de l&rsquo;API pour lesquels vous avez mis en \u0153uvre la limitation de taux \u00e0 l&rsquo;aide de Postman en effectuant des appels r\u00e9p\u00e9t\u00e9s jusqu&rsquo;\u00e0 ce que vous ayez atteint la limite configur\u00e9e. Vous recevez une r\u00e9ponse <strong>429 Too Many Requests<\/strong> apr\u00e8s avoir d\u00e9pass\u00e9 la limite.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>L&rsquo;int\u00e9gration de fonctionnalit\u00e9s de limitation de d\u00e9bit dans une API Laravel permet de contr\u00f4ler la vitesse \u00e0 laquelle les utilisateurs consomment les ressources d&rsquo;une application. La limitation du taux vous aide \u00e0 fournir une exp\u00e9rience utilisateur fiable sans sous-d\u00e9penser ni sur-d\u00e9penser. Elle permet \u00e9galement de s&rsquo;assurer que l&rsquo;infrastructure sous-jacente de l&rsquo;application reste fonctionnelle et efficace.<\/p>\n<p>Vous pouvez \u00e9galement consulter le blog de Kinsta pour en savoir plus sur d&rsquo;autres concepts passionnants concernant <a href=\"https:\/\/kinsta.com\/fr\/sujets\/laravel\/\">Laravel<\/a> et d&rsquo;autres technologies web. Les <a href=\"https:\/\/sevalla.com\/application-hosting\/\">services d&rsquo;h\u00e9bergement<\/a> abordables et transparents sont fortement recommand\u00e9s pour les besoins de votre application et de votre \u00e9quipe.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>La limitation du d\u00e9bit est essentielle pour prot\u00e9ger les ressources d&rsquo;une application ou d&rsquo;un site web contre une utilisation excessive ou inappropri\u00e9e. Qu&rsquo;elle r\u00e9sulte d&rsquo;une intervention &#8230;<\/p>\n","protected":false},"author":290,"featured_media":72117,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[953,986],"class_list":["post-72116","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l&#039;exploitation des ressources de votre application.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l&#039;exploitation des ressources de votre application.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-21T13:27:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-08T13:48:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marcia Ramos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l&#039;exploitation des ressources de votre application.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcia Ramos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/\"},\"author\":{\"name\":\"Marcia Ramos\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\"},\"headline\":\"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel\",\"datePublished\":\"2023-08-21T13:27:47+00:00\",\"dateModified\":\"2023-09-08T13:48:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/\"},\"wordCount\":2554,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/\",\"name\":\"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg\",\"datePublished\":\"2023-08-21T13:27:47+00:00\",\"dateModified\":\"2023-09-08T13:48:15+00:00\",\"description\":\"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l'exploitation des ressources de votre application.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\",\"name\":\"Marcia Ramos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"caption\":\"Marcia Ramos\"},\"description\":\"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/marciadiasramos\/\"],\"honorificSuffix\":\"B.Sc.\",\"gender\":\"Female\",\"knowsLanguage\":[\"English\",\"Portuguese\"],\"jobTitle\":\"Editorial Team Lead\",\"worksFor\":\"Kinsta Inc.\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/marciaramos\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel - Kinsta\u00ae","description":"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l'exploitation des ressources de votre application.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel","og_description":"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l'exploitation des ressources de votre application.","og_url":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-08-21T13:27:47+00:00","article_modified_time":"2023-09-08T13:48:15+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg","type":"image\/jpeg"}],"author":"Marcia Ramos","twitter_card":"summary_large_image","twitter_description":"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l'exploitation des ressources de votre application.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Marcia Ramos","Dur\u00e9e de lecture estim\u00e9e":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/"},"author":{"name":"Marcia Ramos","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116"},"headline":"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel","datePublished":"2023-08-21T13:27:47+00:00","dateModified":"2023-09-08T13:48:15+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/"},"wordCount":2554,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/","url":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/","name":"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg","datePublished":"2023-08-21T13:27:47+00:00","dateModified":"2023-09-08T13:48:15+00:00","description":"D\u00e9couvrez comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel et att\u00e9nuer l'exploitation des ressources de votre application.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-throttle.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/limitation-debit-api-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinsta.com\/fr\/sujets\/api\/"},{"@type":"ListItem","position":3,"name":"Comment ajouter une limitation de d\u00e9bit \u00e0 une API dans une application Laravel"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116","name":"Marcia Ramos","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","caption":"Marcia Ramos"},"description":"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.","sameAs":["https:\/\/www.linkedin.com\/in\/marciadiasramos\/"],"honorificSuffix":"B.Sc.","gender":"Female","knowsLanguage":["English","Portuguese"],"jobTitle":"Editorial Team Lead","worksFor":"Kinsta Inc.","url":"https:\/\/kinsta.com\/fr\/blog\/author\/marciaramos\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/290"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=72116"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72116\/revisions"}],"predecessor-version":[{"id":72682,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72116\/revisions\/72682"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/fr"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/es"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/translations\/de"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72116\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/72117"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=72116"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=72116"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=72116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}