Найдите имя клиента для вызова gRPC в Go

Я использовал protobufs для определения моих моделей и службы gRPC, а также сгенерировал протоколы для Go (.pb.go). Когда я вызываю службу gRPC, я хочу узнать на сервере имя клиента / приложения, вызывающего серверный API. Может ли здесь помочь параметр контекста в API?


person agyeya    schedule 17.04.2019    source источник


Ответы (2)


Вы можете использовать параметр набора WithUserAgent, чтобы установить строку настраиваемого пользовательского агента на клиент.

Для получения пользовательского агента на стороне сервера см. этот вопрос. Ответа на него нет полностью, но вы можете просто распечатать карту метаданных и посмотреть, как пользовательский агент сохраняется в метаданных. А потом разместите там свои выводы :)

person Thomas    schedule 17.04.2019

Как вариант, вы можете использовать Метаданные GRPC. Он не строго типизирован (потому что это просто map[string][]string), но может хорошо соответствовать вашим потребностям. Установите настраиваемое поле метаданных на стороне клиента и проверьте это поле в обработчике сервера.

person Vitaly Isaev    schedule 17.04.2019