При использовании цепочки мидлварей, которые выполняют какие-то ограничения, в Go внутренний обработчик не может ослабить ограничение, установленное внешним, так как каждый мидлварь оборачивает тело запроса в новый ограничитель - внешний срабатывает первым.
Конкретно в этой статье речь идет про мидделварю MaxBytes, но подходит довольно универсальный
Автор предлагает интересное решение: внешний мидлварь создает единственный limitReader и сохраняет указатель на него в контексте запроса, а следующие по цепочке просто перезаписывают поле limit вместо повторной обертки. Так ограничение, заданное ближе к обработчику, всегда "побеждает", и дефолтный жесткий лимит можно точечно ослаблять для отдельных эндпоинтов без побочных эффектов
26.06.2026
Похожее
10.08.2026
Go 1.27
Антон Жиянов делал интерактивные туры по Go с версии 1.22 по 1.26, но решил оста...
07.08.2026
SIMD в go
Будущее пришло быстрее, чем ожидалось: в go1.27rc2 пакет simd стал портируемым, ...
05.08.2026
Swiss Tables
Статья подробно разбирает переход Go 1.24 от классической bucket-архитектуры мап...
03.08.2026
Визуализируем GC
Статья наглядно исследует новый сборщик мусора Green Tea в Go 1.25/1.26. Авт...