Я использовал protobufs для определения моих моделей и службы gRPC, а также сгенерировал протоколы для Go (.pb.go). Когда я вызываю службу gRPC, я хочу узнать на сервере имя клиента / приложения, вызывающего серверный API. Может ли здесь помочь параметр контекста в API?
Найдите имя клиента для вызова gRPC в Go
Ответы (2)
Вы можете использовать параметр набора WithUserAgent
, чтобы установить строку настраиваемого пользовательского агента на клиент.
Для получения пользовательского агента на стороне сервера см. этот вопрос. Ответа на него нет полностью, но вы можете просто распечатать карту метаданных и посмотреть, как пользовательский агент сохраняется в метаданных. А потом разместите там свои выводы :)
person
Thomas
schedule
17.04.2019
Как вариант, вы можете использовать Метаданные GRPC. Он не строго типизирован (потому что это просто map[string][]string
), но может хорошо соответствовать вашим потребностям. Установите настраиваемое поле метаданных на стороне клиента и проверьте это поле в обработчике сервера.
person
Vitaly Isaev
schedule
17.04.2019