Ставит middleware в порядок, при котором лог видит итоговый статус ответа
Зачем
Зачем это нужно
Останавливает цепочку после отказа и не допускает выполнения защищённого handler
Не хранит объект запроса в глобальном состоянии между горутинами
Вопросы
Частые вопросы
Почему handler выполняется после ответа 401?
Middleware записал ответ, но не прервал цепочку или продолжил код после abort. Нужно вернуть управление сразу после отказа. Модель покажет точную ветку и добавит тест, который проверяет отсутствие побочного эффекта защищённого handler, а не только код HTTP в ответе.
Где измерять длительность запроса?
Запомнить начало до Next, а итоговый статус и время записать после возвращения из нижних обработчиков. Тогда лог включает бизнес-работу. Модель также исключит health endpoint при необходимости и не станет читать тело ответа целиком ради метрики, что только увеличивает память.
Можно ли запускать горутину с gin.Context?
Контекст запроса переиспользуется и не предназначен для жизни после handler. Нужные значения копируют отдельно, а стандартный context передают с отменой и сроком. Модель выделит безопасные поля и не позволит фоновой задаче обращаться к writer после завершения HTTP-ответа.
Рядом
Соседние страницы каталога
Дальше — весь каталог задач: поиск по названию, темы и фильтры.