Trace id кладётся через неэкспортируемый тип-ключ. Реализуйте withUserID (WithValue по userIDKey{}) и userID (достать с ok).
- Задача
- Решение
- Обсуждение
WithUserID: значение по ключу-типу
GolangРешение
func withUserID(ctx context.Context, id int) context.Context {
return context.WithValue(ctx, userIDKey{}, id)
}
func userID(ctx context.Context) (int, bool) {
v, ok := ctx.Value(userIDKey{}).(int)
return v, ok
}