Карточка Middle net/http и middleware обновлено
Статус ответа в middleware
Вопрос
Как в logging-middleware узнать код ответа, который выставил обработчик?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Обернуть ResponseWriter своим типом, который встраивает исходный и перехватывает WriteHeader(code) (и Write, чтобы учесть неявный 200), сохраняя код в поле.
Ответ
Обернуть ResponseWriter своим типом, который встраивает исходный и перехватывает WriteHeader(code) (и Write, чтобы учесть неявный 200), сохраняя код в поле.
Разбор
Обёртка теряет дополнительные интерфейсы (Flusher, Hijacker). С Go 1.20 http.NewResponseController умеет достучаться до них через метод Unwrap.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «net/http и middleware»
- Статистика access-логов: ошибки и p95 на Go
- Разбор сырого HTTP/1.1 запроса на Go
- Разбор query-строки URL с декодированием на Go
- Маршрутизатор с параметрами пути в стиле ServeMux
- Rate limiter на токен-бакете для middleware на Go
- Зачем закрывать resp.Body
- Таймаут http.DefaultClient
- Обработчики net/http и горутины