Является ли использование параметров Post намного лучше, чем получение параметров для выполнения процедуры в REST API? - PullRequest
1 голос
/ 31 января 2020

Я читал , это отвечает , и мне было интересно, почему так лучше "модифицировать ресурс" / "выполнять процедуры", используя параметры внутри POST, чем в GET для RESTful API?

Ответы [ 2 ]

2 голосов
/ 31 января 2020
  1. Длина URL ограничена - браузеры обычно ограничивают ее до 2048 символов, поэтому вы не можете поместить слишком много информации в параметры GET
  2. URL допускает только простые пары ключ / значение в качестве параметров запроса - вы будете необходимо кодировать URL JSON значения, которые могут быстро достичь предела длины URL
  3. GET-запросы могут кэшироваться в различных точках между клиентом и сервером - поэтому клиент не может быть уверен, что ответ API Недавние или кэшированные (например, если вы попытаетесь переименовать объект, промежуточный прокси-сервер может ответить с результатом вашего предыдущего GET для переименования этого объекта)
  4. Вы не можете загрузить файл с помощью GET
1 голос
/ 31 января 2020

почему так лучше "модифицировать ресурс" / "выполнять процедуры", используя параметры внутри POST, чем в GET для RESTful API

Поскольку семантика GET определены как safe

Методы запроса считаются "безопасными", если их определенная семантика по существу доступна только для чтения; т. е. клиент не запрашивает и не ожидает каких-либо изменений состояния на исходном сервере в результате применения безопасного метода к целевому ресурсу.

Этот общий контракт говорит, что я могу произвести GET запрос нацеливания на любой ресурс в мире и знаю, что мои действия безвредны (или, точнее, если они не безвредны, это не моя вина).

Эта гарантия semanti c разрешает такие вещи, как сканеры, которые могут перемещаться по представлениям ресурсов в веб-архиве без необходимости что-либо знать о каком-либо конкретном c ресурсе.

...