Пакетная конечная точка принимает массив элементов — записи для создания, идентификаторы для удаления — в одном запросе, что позволяет избежать повторного обращения к серверу для каждого элемента. Поскольку некоторые элементы могут быть успешно обработаны, а другие — нет, ответ сообщает о каждом из них отдельно, и код состояния 207 Multi-Status соответствует именно такой ситуации: "look inside, the outcomes differ" .
В теле ответа указывается статус каждого элемента, обычно в том же порядке, что и запрос, или по идентификатору, предоставленному клиентом. Принцип атомарности различается: некоторые пакеты обрабатываются по принципу «всё или ничего» и отвечают одним сообщением 4xx, если какой-либо элемент недействителен; другие фиксируют то, что могут, и сообщают об остальном. API должен документировать, какой именно тип обработки используется.
Код 2xx в пакетной обработке означает, что всё прошло успешно. Код 207 относится к классу успешного выполнения, и клиент, проверяющий только response.ok, сообщит об успехе, в то время как половина его записей будет отклонена. Клиенты, обрабатывающие пакетные запросы, должны перебирать результаты для каждого элемента отдельно.
POST-запрос /friends/v1/characters/bulk проверяет каждый элемент отдельно и возвращает код 207, если некоторые из них не проходят проверку, а POST-запрос /friends/v1/characters/bulk-delete сообщает о частичном успехе аналогичным образом; для проверки отправляется один некорректный элемент среди корректных.
Все термины · Приёмы тестирования · Все 39 mock REST API
Последнее обновление