PUT объемное тело запроса - PullRequest
0 голосов
/ 25 февраля 2019

Мне интересно, как правильно сделать это:

Я хочу обновить несколько элементов в списке и сразу отправить их на сервер, а не как PUT с идентификатором.Это то, что я хочу:

тело запроса: [{oneKey: 'One value', anotherKey: 'Another value'}, {oneKey: 'One value'}]

И я хочучтобы отправить это с PUT на эту службу: mydomain / myservice, а не на что-либо подобное mydomain / myservice / 1

  • Какова правильная форма значения ответа?
  • СледуетЯ получаю новые обновленные значения , если все в порядке?
  • Должен ли я получать новые обновленные значения и другие значения, которые не были обновлены , если все в порядке?
  • Должен ли я получить старые значения , если что-то пойдет не так?

Или что-то еще?

1 Ответ

0 голосов
/ 26 февраля 2019

Я думаю, что ваши вопросы указывают на трения, вызванные несоблюдением стиля RESTful в API RESTful.Как правило, вы отправляете один запрос PUT на ресурс и получаете соответствующий ответ для действия для этого конкретного ресурса.Но бывают случаи, когда не всегда получается самый оптимальный способ сделать что-то.Итак, я видел, что это решается двумя различными способами.

Вариант 1 Для этих типов пакетных сценариев у вас будет отдельная служба RPC для обработки этих запросов.Это совершенно отдельный процесс, обычно это веб-служба SOAP, или, если вы хотите перейти к более новому способу, вы можете взглянуть на grcp.io .Очень эффективно и прекрасно работает для этого типа запроса.Но, так как у вас есть другой процесс, есть больше накладных расходов.

Вариант 2 Используйте текущий API RESTfull и используйте сегмент "_verb" в URI.Это представляет выполнение, а не ресурс.Подчеркивание - это визуальный признак того, что это не ресурс.Например: POST https://api.mydomain.com/sales/orders/_batchUpload

Ответ будет таким, какой имеет смысл в вашем сценарии.Один из способов, с помощью которых я видел это, состоит в том, что объект ответа содержит список идентификаторов ресурсов с флагом статуса для каждого.Итак, статус был «Успешно» или «Неудачно».

...