Junior — Middle
Koje informacije je dozvoljeno prenositi putem konteksta u aplikaciji?
sobes.tech АИ
Одговор од АИ
U Go-u, obično se informacije povezane sa upravljanjem životnog ciklusa zahteva ili operacije prenose putem context (context.Context`), na primer:
- Otkazivanje operacije (preko kanala
Done()). - Rokovi i vremenski limiti (preko
Deadline()). - Vrednosti koje su potrebne tokom celog lanca poziva, kao što su identifikatori zahteva, tokeni za autentifikaciju, metapodaci.
Važno: u kontekst ne treba stavljati velike objekte, stanja ili podatke koji nisu povezani sa upravljanjem zahtevom, kako ne bi narušili njegovu svrhu i izbegli curenje memorije.
Primer prenosa vrednosti putem konteksta:
ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")