В Google Apps Script команда «AdminDirectory.Groups.insert (group)» считается запросом на публикацию? - PullRequest
0 голосов
/ 21 июня 2019

В скрипте Google Apps я вызываю API каталога SDK G Suite Admin с помощью команды AdminDirectory.Groups.insert(group). Считается ли это запросом POST? Мне интересно, потому что я знаю, что существуют неявные способы выполнения запросов POST, где POST не указан явно, например urlfetch(). В проекте, над которым я работаю, я пытаюсь избежать использования HTTP-запросов по соображениям безопасности.

Я провел некоторые исследования в Интернете, но у меня возникли трудности с поиском ответа на этот вопрос. Я думаю, что поскольку объект JavaScript, а не объект JSON был передан в insert(), он не будет считаться запросом POST, поскольку нотация JSON обычно используется при отправке данных на сервер или получении данных с сервера. Поскольку group является объектом JavaScript, а не объектом JSON, я думаю, что команда AdminDirectory.Groups.insert(group) не будет запросом POST. Я на правильном пути здесь?

Для некоторого контекста, вот функция, которую я написал для создания группы:

function createAGroup() {
    var group = {
        email: "test-group@test.com",
        name: "Test Group",
        description: "This is a test group."
    };
    group = AdminDirectory.Groups.insert(group);
    Logger.log('Group %s created.', group);
}

Функция createAGroup() успешно создала группу. Однако использовала ли команда AdminDirectory.Groups.insert(group) запрос POST для создания группы или нет?

1 Ответ

2 голосов
/ 24 июня 2019

Если вы не уверены, какой запрос вы просматриваете - вы можете найти его в Справочнике разработчиков Google.

В вашем случае:

Если вы перейдете в Справочник сценариев приложений для каталога администратора: https://developers.google.com/apps-script/advanced/admin-sdk-directory

Он свяжет вас со справочной документацией для конкретных методов API Admin SDK Directory, где вы можете найти ссылку для конкретного метода Groups: insert enter image description here

https://developers.google.com/admin-sdk/directory/v1/reference/groups/insert

Он говорит вам:

HTTP request

POST https://www.googleapis.com/admin/directory/v1/groups

Этот синтаксис переводится один в один в Apps Script, который вы можете доказать следующим образом:

Если вы протестируете метод в разделе «Попробуйте этот API» со своим телом запроса, результат будет:

200
{
"kind": "admin#directory#group",
"id": "03oy7u293zlw6l7m",
"etag": "\"zPBZh0mDALCYqI567HUiXii8qQjpg/VckrVGnV8Hs56iDrqRt7j4XT5eRyM\"",
"email": "test-group@test.com",
"name": "Test Group",
"description": "This is a test group",
"adminCreated": true
}

Теперь, если вы запустите его в Apps Script, ваш вывод Looger.lo будет:

Group {kind=admin#directory#group, name=Test Group, description=This is a test group., etag="zPBZh0mDALCYqI7HMkUiXii8qQjpg/gIcr9tsZMDRRrDJECvLtNT66KBc", id=00ha3apch11zp6hh, adminCreated=true, email=test-group@test.com} created.

Вы можете видеть, что в обоих случаях ответ извлекает данные одинаково и дает вам эквивалентную обратную связь. Таким образом, можно с уверенностью сказать, что метод, используемый в App Script, действительно использует POST-запрос.

Как правило:

Все, что создает новый объект на бэкэнде (например, вставка пользователей или групп), является запросом POST, все, что обновляет существующие объекты (например, изменяет личные данные пользователя), является запросом PUT, всем, что извлекает данные ( например, перечисление пользователей) - это запрос GET, а DELETE довольно понятен.

App Script - это «инструмент», который устраняет необходимость выполнения запроса вручную. Но всегда проверяйте справку о том, как реализовать определенный метод.

Если вы хотите сделать явный запрос JSON - вы можете преобразовать нотацию JavaScript в строку JSON с помощью JSON.stringify (), как описано здесь:

https://developers.google.com/apps-script/guides/services/external#work_with_json

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