Sobes.tech
Junior — Middle

Jakie informacje można przekazywać przez kontekst w aplikacji?

sobes.tech AI

Odpowiedź od AI

W Go zazwyczaj przekazuje się informacje związane z zarządzaniem cyklem życia żądania lub operacji za pomocą kontekstu (context.Context), na przykład:

  • Anulowanie operacji (przez kanał Done()).
  • Terminy i limity czasowe (przez Deadline()).
  • Wartości potrzebne przez cały łańcuch wywołań, takie jak identyfikatory żądań, tokeny uwierzytelniania, metadane.

Ważne: nie należy umieszczać w kontekście dużych obiektów, stanów lub danych, które nie są związane z zarządzaniem żądaniem, aby nie naruszać jego przeznaczenia i nie powodować wycieków pamięci.

Przykład przekazywania wartości przez kontekst:

ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")