Sobes.tech
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")