При использовании цепочки мидлварей, которые выполняют какие-то ограничения, в Go внутренний обработчик не может ослабить ограничение, установленное внешним, так как каждый мидлварь оборачивает тело запроса в новый ограничитель - внешний срабатывает первым.
Конкретно в этой статье речь идет про мидделварю MaxBytes, но подходит довольно универсальный
Автор предлагает интересное решение: внешний мидлварь создает единственный limitReader и сохраняет указатель на него в контексте запроса, а следующие по цепочке просто перезаписывают поле limit вместо повторной обертки. Так ограничение, заданное ближе к обработчику, всегда "побеждает", и дефолтный жесткий лимит можно точечно ослаблять для отдельных эндпоинтов без побочных эффектов
26.06.2026
Похожее
28.09.2026
C на Go
Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...
25.09.2026
Бенчим джейсон
Автор на реальном API с нагрузкой 50M запросов/сутки)сравнивает производительнос...
24.09.2026
Rune
Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...
23.09.2026
Специализированные аллокаторы
В Go 1.27 появилась оптимизация выделения памяти для объектов размером до 80 бай...