Встроенный сервис Acceptor¶
Сервис acceptor
предназначен для массового сохранения объектов разных классов.
Доступен по адресу <адрес сервера>/rest/acceptor
.
Для работы с сервисом требуется его регистрация в файле конфигураций приложений deploy.json. При этом для сервиса
обязательно должны быть указаны репозитории dataRepo
и metaRepo
в options
. Например:
{
"modules": {
"rest": {
"globals": {
"di": {
"acceptor": {
"module": "modules/rest/lib/impl/acceptor",
"options": {
"dataRepo": "ion://dataRepo",
"metaRepo": "ion://metaRepo"
}
}
Авторизация осуществляется через все основные типы доступа.
Сервис работает по методу POST
, объекты передаются в виде массива объектов в формате JSON в теле запроса с обязательным
указанием в заголовке содержания json Content-Type:application/json
. Автосоздаваемые поля указывать не обязательно.
В заголовке (header) в свойстве ion-converter
может быть передано имя конвертора, который нужно использовать при обработке данных - как запроса, так и ответа.
При этом сам конвертор данных должен быть зарегистрирован в options
сервиса.
Если обработчик не указан, используется обработчик по умолчанию.
В данных объекта обязательно указываются:
_id
- идентификатор объекта по ключевому полю_class
- класс объекта с неймспейсом_classVer
- версия класса
Остальные значения должны соответствовать свойствам класса, включая соответствие типов данных. Пример:
curl -X POST -u demo@local:ion-demo \
-H "Content-Type:application/json" \
-d '[{"_class": "class_string@develop-and-test", "__classVer": null,"id": "10101010-5583-11e6-aef7-cf50314f026b",\
"string_text": "Example10", "string_miltilinetext": "Example10", "string_formattext": "Example10"}]' \
https://dnt.iondv.com/rest/acceptor
пример запроса на создание объектов к сервису acceptor в dnt: test/modules/rest/acceptor.spec.js
/Checking acceptor service/# basicAuth authorization with admin rights, POSTing strings/# result of creation of objects
Метод возвращает код 200
и массив сохраненных объектов.
[
{
"id": "10101010-5583-11e6-aef7-cf50314f026b",
"_class": "class_string@develop-and-test",
"_classVer": "",
"string_formattext": "Example10",
"string_miltilinetext": "Example10",
"string_text": "Example10",
"_id": "10101010-5583-11e6-aef7-cf50314f026b"
}
]
В случае ошибки код ответа будет 400
, а текст ответа содержать
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Bad Request</pre>
</body>
</html>