Я использую golang пакет google. golang .org / api / admin / directory / v1 v0.28.0 для создания интерфейса командной строки администратора для Google G Suite.
Тип пользователя (и другие types) имеет логические свойства с тегами omitempty json. Я могу установить для этих свойств значение true, но когда я пытаюсь установить для них значение false, ничего не происходит. Я считаю, что это потому, что опция omitempty означает, что значение false игнорируется при передаче.
После небольшого веб-исследования кажется, что ответом может быть использование указателей и изменение типа логических свойств от bool до * bool. Затем установите значение, используя указатель типа bool, например:
user := new(*admin.User)
f := new(bool)
*f = false
user.Suspended = f
Я не уверен, почему это может сработать, но было предложено и подтверждено, что оно работает в отношении другого API.
Эти клиентские библиотеки API создаются автоматически, и я не уверен, как проверить свою теорию. Если кто-нибудь сталкивался с этой проблемой в прошлом, есть ли способ ее устранения или обходной путь? Может ли кто-нибудь подсказать, как я могу создать свою собственную версию клиента golang?