В настоящее время я создаю сервер gRPC python, который сериализует тонны различных протокольных сообщений в json, чтобы сохранить их в базе данных no-sql. Я хотел бы упростить расширение этого сервера, чтобы мы могли добавлять новые типы без перезаписи сервера gRPC и повторного развертывания. В идеале мы хотели бы определить новое сообщение, поместить его в прото-файл и обновлять только клиента. Сначала сервер должен ожидать любой тип, но знает файл или папку .proto, где искать, когда дело доходит до сериализации / десериализации.
Я читал о типе Any и изучаю, могу ли я это сделать. По нему есть некоторая документация, но очень мало примеров для работы. Я не совсем понимаю, как сохранить / получить тип поля Any.
- Во всей документации https используется в качестве протокола для типа поля Any (например, type.googleapis.com/google.protobuf.Duration). Это тоже значение по умолчанию. Как бы это выглядело, если бы я использовал локальную файловую систему? Как мне сохранить это в прото-сообщении на стороне клиента?
- Как я могу получить тип на стороне сервера?
- Где найти аналогичный пример?