Методы API GCP: пустое тело запроса vs {}?

Некоторые методы GCP API требуют пустого тела запроса, другие требуют {} в теле. Я не могу понять какой-либо шаблон.

Примеры методов, которые требуют пустого тела запроса и возвращают ошибку, если вызваны с помощью {}:

Примеры методов, которые требуют {} в теле и возвращают ошибку, если вызваны с пустым телом:

Забавно, что все четыре документа говорят, что тело запроса должно быть пустым! Для второй группы я бы сказал, что это ошибка: тело должно быть не пустым; Это должно быть {}.

Это довольно раздражает - похоже на случайную разницу между методами? Есть ли здесь какая-то рифма или причина? Разве методы body {} не могут принимать пустое тело?

Некоторые идеи, которые, кажется, не объясняют разницу:

  • Поскольку многие продукты используют IAM, эти функции могут иметь странное поведение. Но смотри выше - getIamPolicy отличается между продуктами.

  • Различные продуктовые группы могут принять решение о разных местных соглашениях. Но смотрите выше - API pubsub имеет вызовы в каждом лагере.

1 ответ

Решение

Первые две ссылки, которыми вы поделились, являются HTTP GET методы, которые не должны иметь тела, поскольку должны только извлекать данные, и вся информация может быть передана через URL и некоторые параметры запроса.

Две другие ссылки HTTP PUT методы, которые ожидают, что полезная нагрузка обновит текущее содержимое данного объекта.

Вы можете найти больше объяснения о том, как методы HTTP определены в IETF RFC 2616, объясняя протокол HTTP.

Другие вопросы по тегам