Вопрос

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

Это было полезно?

Решение

Я не понимаю, какой смысл пакетная обработка запросов имеет в REST.Поскольку URL-адрес в службе на основе REST представляет операцию, которую необходимо выполнить, и данные, над которыми ее необходимо выполнить, выполнение пакетных запросов серьезно нарушит концептуальную модель.

Исключением может быть ситуация, когда вы выполняете одну и ту же операцию с одними и теми же данными несколько раз.В этом случае вы можете либо передать несколько значений для параметра запроса, либо закодировать это повторение в теле (однако это будет работать только для PUT или POST).Gliffy REST API поддерживает добавление нескольких пользователей в одну папку через

POST /folders/ROOT/the/folder/name/users?userId=56&userId=87&userId=45

что по сути:

PUT /folders/ROOT/the/folder/name/users/56
PUT /folders/ROOT/the/folder/name/users/87
PUT /folders/ROOT/the/folder/name/users/45

Как отметил другой комментатор, результаты подкачки из GET могут быть выполнены с помощью параметров запроса:

GET /some/list/of/resources?startIndex=10&pageSize=50

если служба REST поддерживает это.

Другие советы

Если вам действительно нужна пакетная обработка, Http 1.1 поддерживает концепцию HTTP-конвейера, которая позволяет отправлять несколько запросов до получения ответа.Проверьте это здесь

Я согласен с Даррелом Миллером.HTTP уже поддерживает конвейерную обработку HTTP, а также поддерживает HTTP, позволяя одновременно передавать несколько операций HTTP в один и тот же сокет, чтобы избежать необходимости ждать ответов перед потоковой передачей новых запросов на сервер и т. д.

Таким образом, с помощью HTTP-конвейера и поддержки активности вы получаете эффект пакетной обработки при использовании одного и того же базового REST API, поэтому обычно нет необходимости в другом REST API для вашего сервиса.

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

Конечно, есть способ, но для этого потребуется поддержка на стороне сервера.Насколько мне известно, не существует волшебной, универсальной для всех методологии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top