В Google Apps Script команда "AdminDirectory.Groups.insert(group)" считается запросом на публикацию?
В скрипте Google Apps я вызываю API-каталог G Suite Admin SDK с помощью команды 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 ответ
Если вы не уверены, какой запрос вы просматриваете, вы можете найти его в Справочнике разработчиков Google.
В твоем случае:
Если вы перейдете в Справочник сценариев приложений для каталога администратора: https://developers.google.com/apps-script/advanced/admin-sdk-directory
Он свяжет вас со справочной документацией для конкретных методов API Admin SDK Directory, где вы можете найти ссылку для конкретного метода Groups: insert
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