Sobes.tech
Junior — Middle

Обяснете какво се разбира под метаданни в протокола gRPC и каква роля изпълняват.

sobes.tech AI

Отговор от AI

В gRPC метаданните са допълнителна информация, която се предава заедно с заявката или отговора, но не е част от основното тяло на съобщението.

Ролята на метаданните:

  • Предаване на служебна информация като токени за удостоверяване, идентификатори на сесии, езикови настройки.
  • Управление на поведението на извикването (например, таймаути, приоритети).
  • Помагат за реализиране на допълнителни нива на логика без промяна на структурата на основното съобщение.

В Go метаданните са представени като двойки ключ-стойност и могат да бъдат добавени към контекста на извикването. Например:

import (
    "context"
    "google.golang.org/grpc/metadata"
)

md := metadata.Pairs("authorization", "Bearer token123")
ctx := metadata.NewOutgoingContext(context.Background(), md)
// ctx се предава към gRPC извикването