При использовании цепочки мидлварей, которые выполняют какие-то ограничения, в Go внутренний обработчик не может ослабить ограничение, установленное внешним, так как каждый мидлварь оборачивает тело запроса в новый ограничитель - внешний срабатывает первым.
Конкретно в этой статье речь идет про мидделварю MaxBytes, но подходит довольно универсальный
Автор предлагает интересное решение: внешний мидлварь создает единственный limitReader и сохраняет указатель на него в контексте запроса, а следующие по цепочке просто перезаписывают поле limit вместо повторной обертки. Так ограничение, заданное ближе к обработчику, всегда "побеждает", и дефолтный жесткий лимит можно точечно ослаблять для отдельных эндпоинтов без побочных эффектов
26.06.2026
Похожее
19.07.2026
Объединение запросов
Статья объясняет технику объединения запросов на Go с помощью пакета singlefligh...
16.07.2026
mmap или pread
Автор статьи - инженер из VictoriaMetrics. На примере реального движка хранения ...
16.07.2026
TypeScript переписали на Go
Команда Microsoft с помощью AI переписала компилятор TypeScript 7.0 на Go, а не ...
14.07.2026
На 49% быстрее из-за выравнивания
Разбор неожиданной оптимизации в Go: сдвиг массива на 4 байта через добавление p...