ОТДЫХ: ПОЛУЧИТЬ, но с просьбой тела - PullRequest
0 голосов
/ 25 октября 2019

Я пишу конечную точку, которая будет извлекать данные. Моя проблема в том, что клиентский запрос должен передать список (очень сложный) объект моей точке зрения, наряду с другими сложными данными.

Все это выглядит сложным, чтобы пройти по параметрам. Должен ли я использовать GET? я могу сделать это с запросом тела? Или я могу сделать POST с телом ответа? Моя конечная точка по-прежнему должна учитывать REST

данные, которые мне нужно передать: {id: "anUuid", комментарий: "какой-то очень длинный текст, иногда больше 1000 символов", dataComputedByOtherServer: [{id:"anUuid", stuff: {"много других вещей"}}]

}

тело ответа: {// allong с обычным кодом http ответа REST и другими полезными данными сообщения об ошибке: {moreComplexData: [{id: "anUuid", материал: {"много других вещей"}}]}}

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Нет полезной нагрузки тела с HTTP GET - вам нужно использовать POST (или PUT) для отправки этого по мере необходимости.

0 голосов
/ 25 октября 2019

Полезная нагрузка в сообщении запроса GET не имеет определенной семантики - https://tools.ietf.org/html/rfc7231#section-4.3.1

Таким образом, GET выходит за пределы.

В долгосрочной перспективеМетод хотения может в конечном итоге быть ПОИСКОМ;см. https://github.com/httpwg/http-extensions/issues/943

Хотя POST с заголовком, определенным в # 942, может помочь, POST по-прежнему является небезопасным методом, который плохо отражает безопасную идемпотентную семантику операций, подобных поиску. Поэтому я утверждаю, что метод SEARCH необходим для того, чтобы иметь безопасный идемпотентный метод с явной поддержкой кэширования, в отличие от POST, который явно не кэшируется. семантика SEARCH по-прежнему определяется спецификацией WebDAV , где они не совсем означают, что вы хотите.

...