/
cloudservices
/
common
Обзор
Документация
Войти
/
cloudservices
/
common
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
middleware/request_id.go
34 строки
665 B
Ivan
move middlewares into separate folder
26 июл 2026, 16:16
26 июл 2026, 16:16
a4dae25
Код
Авторство
О чём код?
package middleware import ( "context" "net/http" "github.com/google/uuid" ) var RequestIDHeader = "X-Request-Id" const RequestIDKey ctxKey = "requestID" func RequestID(importFromRequest bool) Middleware { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { var requestID string if importFromRequest { requestID = r.Header.Get(RequestIDHeader) } if requestID == "" { requestID = uuid.NewString() } w.Header().Set(RequestIDHeader, requestID) next.ServeHTTP(w, r.WithContext(context.WithValue( r.Context(), RequestIDKey, requestID, ))) }) } }