Маршрутизация API Laravel не выполняет регулирование - всегда устанавливается значение по умолчанию 60,1

У меня есть группа конечных точек, на которых я хочу ограничить 10 запросов в минуту. В настоящее время моя группа конечных точек выглядит так:

Route::group([
    'middleware' => 'auth:api', 'throttle:10,1'
], function () {
// endpoints here
}

Проблема в том, что когда я просматриваю свои заголовки, ограничение скорости установлено на стандартном уровне 60 в минуту. Что я делаю неправильно? Или вы знаете другой способ?

Данные ответа следующие:

cache-control: no-cache, private
content-encoding: gzip
content-type: application/json
date: Tue, 01 May 2018 20:08:55 GMT
server: nginx/1.14.0 (Ubuntu)
status: 200
vary: Accept-Encoding
x-ratelimit-limit: 60
x-ratelimit-remaining: 59

Я пробовал следующее:

Route::group([
    'middleware' => ['auth:api', 'throttle:10,1']
], function () {
// rest of code

Но получил тот же результат. Итак, я попробовал:

Route::group([
    'middleware' => 'throttle:10,1', 'auth:api'
], function () {
// rest of code

Однако это дало мне ошибку 500. Это подсказало мне, что промежуточное ПО обязательно должно быть массивом. Однако, когда это массив, он не устанавливает дроссель на то, что я хочу.

Что говорят заголовки?

tadman 01.05.2018 22:04

cache-control: no-cache, private-encoding: gzip content-type: application / json date: Tue, 01 May 2018 20:08:55 GMT server: nginx / 1.14.0 (Ubuntu) status: 200 разное: принять -Encoding x-ratelimit-limit: 60 x-ratelimit-limit: 59

TytonDon 01.05.2018 22:09

Так как это большой текст, форматирование которого будет полезно, отредактируйте свой вопрос, включив его. В комментарии это просто беспорядок.

tadman 01.05.2018 22:10

Сделанный! :) Спасибо.

TytonDon 01.05.2018 22:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
759
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

У меня нет возможности проверить это, но я подозреваю, что вы хотите:

Route::group([
    'middleware' => ['auth:api', 'throttle:10,1']
], function () {
// rest of code

(источник документов)

То есть, не помещая 'auth:api' и 'throttle:10,1' в один массив, Laravel не имеет возможности понять, что последний также является промежуточным программным обеспечением.

Я обновил свой вопрос в ответ на это. Спасибо за внимание. Любая помощь приветствуется.

TytonDon 01.05.2018 22:23

Я вошел в свой файл Kernel.php и добавил новую группу промежуточного программного обеспечения с дроссельной заслонкой, которую я хотел, и удалил стандартный api. Это сработало. Мне также придется создавать новую группу промежуточного программного обеспечения для каждой создаваемой мной новой группы. Я не думаю, что это должно было быть так, но пока это так. Спасибо за помощь, ребята!

Другие вопросы по теме