/
cloudservices
/
auth-service
Обзор
Документация
Войти
/
cloudservices
/
auth-service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
pkg/xhttp/request_id.go
43 строки
729 B
Ivan Shibkikh
xhttp pkg
27 июл 2026, 21:44
27 июл 2026, 21:44
0aa64cd
Код
Авторство
О чём код?
package xhttp import ( "context" "net/http" "github.com/google/uuid" ) const ( HeaderRequestID = "X-Request-Id" CtxRequestID CtxKey = "request-id" ) func RequestID(allowImport bool) Middleware { return func(next Handler) Handler { return func(w http.ResponseWriter, r *http.Request) error { var id string if allowImport { id = r.Header.Get(HeaderRequestID) } if id == "" { id = uuid.NewString() } w.Header().Set(HeaderRequestID, id) ctx := context.WithValue(r.Context(), CtxRequestID, id) return next(w, r.WithContext(ctx)) } } } func GetRequestID(r *http.Request) string { id := r.Context().Value(CtxRequestID).(string) if id == "" { return "-" } return id }