Я не совсем понял, как protobuf FieldMask работает в запросе grpc, я создал это сообщение от клиента, но я не знаю, как получить и показать значения на сайте сервера.
Client.py
fm = FieldMask(
paths=[ 'f.a',
'f2.a'
])
msg = proto_pb2.Message(
f=proto_pb2.F(a=a_value),
f2=proto_pb2.F2(a=a_value)
)
new_message = proto_pb2.Message()
fm.MergeMessage(msg, new_message)
# Create message to send server
request = server_manager_pb2.UpdateMessageRequest(
id=proto_pb2.Message(id=message_id),
update_mask=fm)
# make the call
response = stub.UpdateMessage(request)
а в server.py
def UpdateMessage(self, request, context):
print(request.update_mask)
отображает следующее значение:
paths: "f.a"
paths: "f2.a"
как я могу отобразить значения полей, отправленные клиентом в этом серверном методе, или как работает FieldMask?






Я не уверен, что ваш вопрос имеет какое-либо отношение к gRPC; Я думаю, что это может быть полностью проблема с буферами протокола. В коде на стороне службы вы печатаете объект запроса, но пробовали ли вы также распечатать объект запроса на стороне вызова? Если да, то печатается одно и то же, потому что значения совпадают, верно? Если значения кажутся разными: покажите нам больше вашего кода? Что такое
FieldMaskи откуда он импортируется? Что такоеproto_pb2и откуда он импортируется?