Как стать автором
Обновить
15
0

Пользователь

Отправить сообщение
HTTP метод при этом в запросе остается DELETE?

Да. Хотя на стороне Caché легко можно добавить свои методы вроде BATCHDELETE.
Вот так
В классе %Projection.REST в блоке <xs:simpleType name="action"
Добавьте XML нод: <xs:enumeration value="BATCHDELETE" />
Скомпилируйте класс %Projection.REST
Добавьте в карту путей брокера новый путь: <Route Url="/test3/:ArrayArg" Method="BATCHDELETE" Call="Test3">
Скомпилируйте класс брокера.

Либо можно попробовать модифицировать карту путей так, чтобы при передаче одного элемента и нескольких элементов с разделителем вызывались различные методы.

Параметры передаются в строке URI после "?" (

Параметры передаются так: server.com/rest/collection/arg1/arg2/arg3

как с ограничением длины дела обстоят?

На стороне сервера происходит Regex поиск совпадения, так что теоретически всё ограничено максимальной длиной строки в Caché (3641144 в 2014.1), однако существуют ещё и ограничения браузера/веб-сервера.
Не являюсь специалистом по FOSS СУБД, но мне кажется более вероятным использование каких-либо внешних средств для построения RESTful web API с подключением их к бд.

Также можно скачать однопользовательскую версию Cache (бесплатно) или использовать GlobalsDB с NodeJS.
Есть ли у вас пакетные операции, например удалить несколько ID?

Стараемся обходиться без них, как не вполне соответствующим принципам REST. Но в случае реализации, передавали бы массивом список ID. На стороне сервера будет обработчик удаления одного ID который проверяет право пользователя на совершение действия перед вызовом метода удаления одного ID, т.к. иначе и парсинг, проверка прав и работа с базой была бы в одном методе.

как проверяется авторизация и права на выполнение операции?

Вот тут предложено несколько методов разграничения прав пользователей в RESTful web API. Планирую написать продолжение статьи как раз об этом вопросе.
12 ...
7

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность