Sobes.tech
Back to questions
Junior — Middle
81

Как указать в gRPC, что определённое поле не предназначено для использования клиентом?

Companies where asked
Холодильник.руХолодильник.ру

Answer from AI

sobes.tech AI

В gRPC, чтобы указать, что определённое поле не предназначено для использования клиентом, можно использовать опцию [(google.api.field_behavior) = OUTPUT_ONLY] в описании protobuf-сообщения. Это служит подсказкой, что поле заполняется сервером и не должно устанавливаться клиентом.

Пример в protobuf:

import "google/api/field_behavior.proto";

message User {
  string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  string name = 2;
}

В Go коде это не накладывает ограничений на уровне компиляции, но служит документацией и может учитываться инструментами генерации кода или валидации.

Если не использовать специальные опции, то договорённости о том, кто должен устанавливать поле, поддерживаются на уровне протокола и документации.