Golang Клиент API Google Admin SDK неправильно устанавливает логические свойства - PullRequest
0 голосов
/ 20 июня 2020

Я использую 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...