Через context.WithValue(ctx, key, value). В контекст кладёшь user ID, request ID, trace ID — то, что живёт в рамках одного запроса. Ключ должен быть приватным типом (type ctxKey struct{}), чтобы избежать коллизий между пакетами. Достаёшь через ctx.Value(key). Но не злоупотребляй: контекст — не замена аргументам функции. Кладёшь только cross-cutting данные (логирование, трейсинг, авторизация), а бизнес-данные передавай явно. Если нужен обязательный параметр — он должен быть в сигнатуре функции, а не в контексте.
Как передавать request-scoped данные?
Middle
468 просмотровAFK Offer AI
Что такое Row vs Rows?