2017-02-20 32 views
1

Мы являемся компанией электронной коммерции, и мы разрешаем нашим дилерам перечислить несколько продуктов за один раз.REST: Может ли мы частично выполнить ресурс POST/PUT/DELETE для API, выполняющего несколько запросов одновременно?

Упрощенная версия API выглядит следующим образом:

{ 
"dealerId":1, 
"stocks": { 
     [] 
} 

}

Поскольку мы позволяем дилер размещать несколько акций на одном дыхании, что мы должны делать в случае, если есть какая-то ошибка проверки. Должны ли мы успешно опубликовать правильные запасы и отправить ответное сообщение с идентификаторами успешных и безуспешных акций? Если да, то какой должен быть код ответа в этом случае, 200 или 400 или какой-либо другой код?

Например, скажем, что у StockId1 есть правильные данные, но у StockId2 есть цена меньше 1, что является ошибкой проверки.

Должны ли мы ПОСТАВИТЬ акции1 и отказаться от акций2 ИЛИ мы должны отклонить оба?

Что предлагает REST для таких ситуаций?

ответ

1

У вас есть два варианта:

  1. Возвращение 202 Accepted, чтобы сказать клиенту, что было принято, но нет никакой гарантии, все шло хорошо, как и ожидалось.
  2. Возврат 200 и список предметов, которые не удались.

Важно, чтобы выбрать один, сообщить об этом на свой API, чтобы клиенты знали об этом и были последовательны. Другими словами, не используйте 202 для некоторых операций и 200 для других операций.

 Смежные вопросы

  • Нет связанных вопросов^_^