При использовании цепочки мидлварей, которые выполняют какие-то ограничения, в Go внутренний обработчик не может ослабить ограничение, установленное внешним, так как каждый мидлварь оборачивает тело запроса в новый ограничитель - внешний срабатывает первым.
Конкретно в этой статье речь идет про мидделварю MaxBytes, но подходит довольно универсальный
Автор предлагает интересное решение: внешний мидлварь создает единственный limitReader и сохраняет указатель на него в контексте запроса, а следующие по цепочке просто перезаписывают поле limit вместо повторной обертки. Так ограничение, заданное ближе к обработчику, всегда "побеждает", и дефолтный жесткий лимит можно точечно ослаблять для отдельных эндпоинтов без побочных эффектов
26.06.2026
Похожее
23.06.2026
Рефлексия
Статья о том, как устроен пакет reflect в Go. Он, кстати, не вычисляет как-то хи...
22.06.2026
Зеро аллокации
Все мы знаем, что пустая структура struct{} в Go действительно занимает ноль бай...
16.06.2026
Уровни микроархитектуры amd64
Возможно вы слышали про уровни микроархитектуры. Каждый уровень включает в себя ...
15.06.2026
Wi-Fi данные
Не знаю зачем вам это может буть нужно, но мне всегда нравятся статьи по работе ...