Методы API Jasper#
Для проверки работы клиента и отправки запросов к интеграционному сервису API Jasper можно использовать Postman.
Все запросы отправляются в адрес: https://{APIURL}/api/v1/{путь_до_метода}
где:
{APIURL} – адрес интеграционного сервиса;
{путь_до_метода} – путь до вызываемого метода API Jasper.
Получение информации о правах на просмотр#
Права на просмотр объектов в Системе задаются в приложении API Jasper.
Назначенные права на просмотр можно запросить с помощью метода rights путём выполнения HTTP-GET запроса.
В заголовке необходимо указать Content-Type: application/json. В ответе будет возвращён список алиасов и наименований всех доступных для просмотра объектов Системы.
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/rights -H 'content-type: application/json'
где:
{APIURL} – адрес интеграционного сервиса.
Ответ придёт в формате:
{
"rights":[
{
"name": "Наименование типа объекта",
"alias": "EntityAlias",
"type": "reading"
}
] ,
"name": "Наименование схемы проекта",
"alias": "scheme"
}
где:
«rights» – массив объектов Cистемы, который содержит псевдоним и наименование типа объекта. Права на просмотр указанных объектов назначены клиенту с типом «reading»;
«name» в блоке «rights» – наименование объекта, для которого даны права на просмотр;
«alias» в блоке «rights» – псевдоним объекта, для которого даны права на просмотр;
«type» – тип предоставляемых прав, на данный момент всегда «reading»;
«name» – наименование схемы проекта, в рамках которой действуют права;
«alias» – псевдоним схемы проекта, в рамках которой действуют назначенные клиенту права.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/rights.
На вкладке Headers в столбце [Key] пропишите Content-Type, в столбце [Value] укажите application/json:

3. Нажмите кнопку Send. В ответе будет содержаться список алиасов и наименований всех доступных для просмотра объектов Системы:
Результат запроса:

Настройки в API Jasper:

Получение списка всех доступных xsd#
Для получения списка всех доступных xsd используется метод XSDs путём выполнения HTTP-GET запроса. В заголовке необходимо указывать Content-Type: application/json. В ответе будет возвращён список доступных для загрузки xsd.
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/XSDs -H 'content-type: application/json'
где:
{APIURL} – адрес интеграционного сервиса.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/xsds.
На вкладке Headers в столбце [Key] пропишите Content-Type, в столбце [Value] укажите application/json.
Нажмите кнопку Send. Ответ будет содержать список всех доступных xsd-схем:

Получение одной xsd-схемы#
Для получения одной конкретной xsd используется метод XSD/{businessScope} путём выполнения HTTP-GET запроса. В заголовке необходимо указать Content-Type: application/json. В ответе будет возвращена запрошенная xsd.
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/XSD/{businessScope} -H 'content-type: application/json'
где:
{APIURL} – адрес интеграционного сервиса;
{businessScope} – наименование xsd-файла, полученного в результате вызова метода XSD.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/XSD/{businessScope}.
На вкладке Headers в столбце [Key] пропишите Content-Type, в столбце [Value] укажите application/json.
3. Нажмите кнопку Send. В ответе будет содержаться текст запрошенного xsd-файла:

Получение доступных схем проектов#
Xsd-файлы работают только в рамках тех проектов, схемы которых описаны в xsd.
Пример описания:
<xs:complextype name="schemeType">
<xs:choice>
<xs:element name="knyagpogotsky" fixed="Княжпогостский МР">
</xs:element></xs:choice>
</xs:complextype>
Для получения схем БД используется метод schemes/{bussinessScope} путём выполнения HTTP-GET запроса. В заголовке необходимо указать Content-Type: application/json. В ответе будут возвращены наименования и псевдонимы схем БД, доступных для работы с xsd.
Пример cURL-запроса:
curl -X GET HTTPS://{APIURL}/api/v1/schemes/{bussinessScope} -H 'content-type: application/json'
где:
{APIURL} – адрес интеграционного сервиса;
{bussinessScope} – наименование xsd-файла, полученного в результате вызова метода XSD.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/schemes/{bussinessScope}.
На вкладке Headers в столбце [Key] пропишите Content-Type, в столбце [Value] укажите application/json:

Загрузка файла#
Для загрузки файла в файловое хранилище Системы используется метод file/{schemeId} путём выполнения HTTP-PUT запроса. В заголовке нужно указать Content-Type: multipart/form-data. В тело запроса следует поместить файл. Размер одного файла не должен превышать 1 Гб. В ответ на запрос будет возвращён ключ файла в файловом хранилище Cистемы. В дальнейшем ключ может быть использован в xml-пакете с данными, которые нужно отправить в Cистему.
Пример cURL запроса:
curl -X PUT HTTPS://{APIURL}/api/v1/file/{schemeId} -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' -F attachment=@{file}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{file} – путь к файлу.
Схема загрузки файлов в файловое хранилище Cистемы:
Проверка в Postman
Сформируйте PUT-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/file/{schemeId}.
На вкладке Headers в столбце [Key] пропишите Content-Type, в столбце [Value] укажите multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW:

На вкладке Body укажите в поле [Key] значение attachment типа File и приложите файл:


Нажмите Send. Проверка считается выполненной успешно, если возвращён ключ записи файла в Системе:

Скачивание файла#
Для выгрузки файла из файлового хранилища Системы используется метод file/{schemeId}/{fileKey} путём выполнения HTTP-GET запроса.
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/file/{schemeId}/{fileKey}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{fileKey} – ключ файла, который нужно выгрузить.
Схема выгрузки файлов из файлового хранилища Системы:

Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/file/{schemeId}/{fileKey}.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращено содержимое файла. Ответ можно сохранить в виде файла:

Также можно отправить запрос сразу на загрузку файла. В этом случае содержимое файла в ответе отображаться не будет:

Удаление файла#
Для удаления файла из карточки объекта используется метод file/{schemeId}/{entityAlias}/{entityKey}/files/{fileKey} путём выполнения HTTP-DELETE запроса.
Примечание
Содержимое файла удаляется из БД, но остается в файловом хранилище.
Пример cURL запроса:
curl -X DELETE HTTPS://{APIURL}/api/v1/file/{schemeId}/{entityAlias}/{entityKey}/files/{fileKey}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – алиас схемы проекта;
{entityAlias} – алиас типа объекта;
{entityKey} – ключ объекта, с которым связан файл;
{fileKey} – ключ файла, который нужно удалить.
При успешном выполнении запроса в БД в столбце [sys_status] таблицы d_file_content для этого файла будет установлено значение 1.
Проверка в Postman
Сформируйте DELETE-запрос к интеграционному сервису API Jasper вида: https://APIURL}/api/v1/file/{schemeId}/{entityAlias}/{entityKey}/files/{fileKey}.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращён статус 200 ОК:

Загрузка изображений#
Примечание
Загрузка изображения в карточку объекта возможна при наличии секции Изображения.

Для загрузки изображения в карточку объекта используется метод image/{schemeId}/{typeAlias}/{entityKey} путём выполнения HTTP-PUT запроса. В заголовке нужно указать Content-Type: multipart/form-data.
В тело запроса следует поместить файл с одним либо несколькими изображениями. Запрос должен содержать токен авторизации. Максимальный размер загружаемых данных не должен превышать 1 Гб. Изображение может быть в форматах .tif, .jfif, .pjp, .apng, .ico, .tiff, .gif, .svg, .webp, .xbm, .jxl, .svgz, .jpg, .jpeg, .png, .bmp, .pjpeg, .avif.
В ответ на запрос будет возвращён ключ файла в файловом хранилище Системы. В дальнейшем ключ может быть использован в xml-пакете с данными, которые нужно отправить в Систему.
Пример cURL запроса:
curl -X PUT HTTPS://{APIURL}/api/v1/image/{schemeId}/{typeAlias}/{entityKey} -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' -F attachment=@{file}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{typeAlias} – алиас объекта в Системе;
{entityKey} – ключ объекта, для которого необходимо загрузить изображение;
{file} – путь к файлу с изображением.
Проверка в Postman
Сформируйте PUT-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/image/{schemeId}/{typeAlias}/{entityKey}:

На вкладке Body укажите в поле [Key] значение attachment типа File и приложите файл c изображением:


Нажмите Send. Проверка считается выполненной успешно, если возвращён ключ записи файла с изображением в Системе:

В карточке объекта добавлено соответствующее изображение:

Если необходимо загрузить несколько изображений, то на вкладке Body следует прикрепить все файлы. В таком случае в ответе на запрос будут перечислены ключи записи для всех загруженных файлов:

Получение списка изображений#
Для получения списка изображений из секции Изображения в карточке объекта используется метод {schemeId}/{typeAlias}/{entityKey}/images путём выполнения HTTP-GET запроса. Для этого необходимо выполнить GET-запрос по ключу объекта, который имеет MR-связь «Изображения (Photo)».
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/{schemeId}/{typeAlias}/{entityKey}/images
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{typeAlias} – алиас объекта в Системе;
{entityKey} – ключ объекта, изображения которого необходимо выгрузить.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/{schemeId}/{typeAlias}/{entityKey}/images.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращён список изображений объекта:

Скачивание превью изображения#
Для выгрузки превью (миниатюры) изображения из секции Изображения в карточке объекта используется метод {schemeId}/{typeAlias}/{entityKey}/images/{imageId}/thumbnail путём выполнения HTTP-GET запроса.
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/{schemeId}/{typeAlias}/{entityKey}/images/{imageId}/thumbnail
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{typeAlias} – алиас объекта в Системе;
{entityKey} – ключ объекта, превью изображения которого необходимо выгрузить;
{imageId} – ключ изображения, превью которого необходимо скачать.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/{schemeId}/{typeAlias}/{entityKey}/images/{imageId}/thumbnail.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращена миниатюра изображения объекта:

Скачивание изображения#
Если у объекта присутствуют изображения, то с помощью HTTP-GET запроса можно скачать конкретное изображение, используя метод image/{schemeId}/{imageKey}.
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/image/{schemeId}/{imageKey}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{imageKey} – ключ изображения, которое необходимо скачать.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/image/{schemeId}/{imageKey}.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращено изображение. Ответ можно сохранить в виде файла:

Также можно отправить запрос сразу на загрузку файла. В этом случае само изображение в ответе отображаться не будет:

Выгрузка архива с изображениями объекта#
Для выгрузки архива с изображениями из секции Изображения в карточке объекта используется метод images/{schemeId}/{typeAlias}/{entityKey} путём выполнения HTTP-GET запроса.
Пример cURL запроса:
curl -X GET HTTPS://{APIURL}/api/v1/images/{schemeId}/{typeAlias}/{entityKey}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{typeAlias} – алиас объекта в Cистеме;
{entityKey} – ключ объекта, изображения которого необходимо выгрузить архивом.
Проверка в Postman
Сформируйте GET-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/images/{schemeId}/{typeAlias}/{entityKey}.
Нажмите Send and Download. Проверка выполнена успешно, если в ответе возвращён архив со всеми файлами изображений из карточки объекта:

Удаление изображения#
Для удаления изображения и миниатюры из карточки объекта используется метод {schemeId}/{entityAlias}/{entityKey}/images/{imageKey} путём выполнения HTTP-DELETE запроса.
Удаляется связь объекта с изображением, связь изображения с миниатюрой и миниатюра.
Примечание
Изображение и миниатюра удаляются из БД, но остаются в файловом хранилище.
Пример cURL запроса:
curl -X DELETE HTTPS://{APIURL}/api/v1/{schemeId}/{entityAlias}/{entityKey}/images/{imageKey}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – алиас схемы проекта;
{entityAlias} – алиас типа объекта;
{entityKey} – ключ объекта, с которым связано изображение;
{imageKey} – ключ изображения, которое нужно удалить.
При успешном выполнении запроса в БД в столбце [sys_status] таблицы d_file_content для изображения и миниатюры будет установлено значение 1.
Проверка в Postman
Сформируйте DELETE-запрос к интеграционному сервису API Jasper вида: https://APIURL}/api/v1/{schemeId}/{entityAlias}/{entityKey}/images/{imageKey}.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращён статус 200 ОК:

Получение списка объектов#
Важно
Для получения информации об объектах клиенту должны быть выданы права на просмотр данного типа объекта, иначе в ответ на запрос будет получено сообщение об отсутствии прав.
В API Jasper v2 реализована возможность получения определённых полей объектов.
Также реализована возможность получения ответа в форматах .json и .xml:
чтобы получить ответ в формате .json, в Headers запроса необходимо указать:
Content-Type: application/json
Accept: application/json
чтобы получить ответ в формате .xml, в Headers запроса необходимо указать:
Content-Type: application/json
Accept: application/xml
Примечание
Получение информации об объектах, которые имеют SR-связь, занимает много времени. Чтобы ускорить ответ, укажите в теле запроса только требуемые поля.
Для получения информации по объектам используется метод entities/{schemeId}/{typeAlias} путём выполнения HTTP-POST запроса.
Пример cURL запроса:
curl -X POST HTTPS://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – алиас схемы проекта;
{typeAlias} – алиас объекта в Системе.
TypeAlias
– псевдоним объекта Geometa, по которому можно выполнить поиск. Перечень псевдонимов объектов, доступный для поиска, задаётся правами для клиента на этапе его регистрации в API. Получить данный перечень можно методом rights.
В результате запроса будут получены первые 100 объектов с их полями. Количество возвращаемых в ответе объектов можно ограничить.
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}.
На вкладке Headers укажите:
- чтобы получить ответ в формате .json:
в столбце [Key] пропишите Content-Type, в столбце [Value] – application/json;
в столбце [Key] пропишите Accept, в столбце [Value] – application/json:
- чтобы получить ответ в формате .xml:
в столбце [Key] пропишите Content-Type, в столбце [Value] – application/json;
в столбце [Key] пропишите Accept, в столбце [Value] – application/xml:
Нажмите Send. Проверка выполнена успешно, если в ответе возвращена информация об объектах с перечнем полей и значениями в них. По умолчанию вернётся информация о 100 объектах указанного типа.
Результат проверки в формате .json:

Результат проверки в формате .xml:

Примечание
В этом типе запроса можно использовать постраничный вывод объектов, ограничить список выводимых полей объектов и выполнить фильтрацию.
Получение ограниченного количества объектов#
Управлять количеством объектов и страниц можно с помощью query-параметров count
и start
.
Получение ограниченного количества объектов с помощью параметра count:
Пример POST-запроса:
HTTPS://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}?count={quantity}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – алиас схемы проекта;
{typeAlias} – алиас объекта в Системе;
{quantity} – количество необходимых объектов.
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}?count={quantity}.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращено указанное количество объектов:

Постраничный вывод объектов с помощью параметров count и start:
Для того чтобы выводить объекты постранично, необходимо добавить к параметру count
параметр start
и указать, с какого по счёту объекта начать вывод.
Пример POST-запроса:
HTTPS://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}?count={quantity}&start={position}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – алиас схемы проекта;
{typeAlias} – алиас объекта в Системе;
{quantity} – количество необходимых объектов;
{position} – позиция объекта, с которой необходимо начать вывод. Позиция начинается с нуля.
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}?count={quantity}&start={position}.
Нажмите Send. Проверка выполнена успешно, если в ответе возвращено указанное количество объектов, начиная с заданной позиции:

Получение списка объектов с ограниченным выводом полей#
Для получения информации из конкретных полей объектов, включая поля связанных объектов, необходимо в теле запроса указать только требуемые поля с уровнями вложенности, используя параметр paths
:
{
"paths":
[
"{Field_1}",
"{Field_2}",
"{Field_3}"
]
}
где:
{Field_1}, {Field_2}, {Field_3} – пути до необходимых полей.
Формирование пути возможно двумя способами:
указать алиас LVItem, в этом случае алиас LV указывать не нужно;
Например:
{ "paths": [ "AdrCapitalBuild/WfAdrPointActiveView/AdrPoint/KeyField", "AdrCapitalBuild/Geometry", "AdrCapitalBuild/OriginalGeometry" ] }
указать алиас LT целевого типа, а не алиас LVI, если в пути используется получение полей по связи, указывающей на LV.
Например:
{ "paths": [ "DocRelRSObjectOKS/WfLinearObject/TPRelLineObjWithMonitoring/EngElectroNetwork/AdrRelReconOks/GknOKS/KN" ] }
Если хотя бы у одного из типов не будет предоставлено прав доступа, то ответ не будет получен.
Для получения значения из поля, необходимо корректно задать к нему путь:
{
"paths":
[
"{alias поля}", //путь к простому полю
"{alias поля справочного значения}/{alias справочника}/{alias поля}", //путь к полю со справочным значением
"{alias поля связи}/{alias объекта}/{alias поля}", //путь к полю через локальну MR-связь c LT
"{alias второго поля MR-связи}_{alias связи}/{alias объекта}/{alias поля}", //путь к полю через глобальную MR-связь c LT
"{alias поля связи}/{alias LVI}/{alias поля в LT}", //путь к полю через MR-связь c LVI
"InfoSetKey/DmdInfoSet/{alias поля}", //путь к полю набора данных
"Geometry", //получение геометрии объектов в системе координат EPSG:4326
"OriginalGeometry" //получение геометрии объектов в оригинальной системе координат
]
}
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}.
2. На вкладке Body укажите пути к необходимым для вывода полям:
{
"paths":
[
"GName", //путь к простому полю
"CultCategoryOKN/CultCategoryOKN/Name", //путь к полю со справочным значением
"OknTerritory_CultRelOKNSecurArea/CultObjSecurArea/ObjectName", //путь к полю через MR-связь c LT
"OknTerritory_CultRelOKNSecurArea/CultObjSecurArea/RelDoc/DocZOUIT/DocName", //путь к полю через MR-связь c LVI
"RelDoc/DocOther/Num", //путь к полю через MR-связь c LT
"InfoSetKey/DmdInfoSet/FullNameField",
"CultRelOKNSecurArea_OknTerritory/CultObjSecurArea/RelDoc/DocZouitEstablish/DocName", //путь к полю через MR-связь c LVI
"Geometry", //получение геометрии объектов в системе координат EPSG:4326
"OriginalGeometry" //получение геометрии объектов в оригинальной системе координат
]
}
Нажмите Send. Проверка выполнена успешно, если в ответе возвращён список объектов с информацией только из указанных полей:

Получение отфильтрованного списка объектов#
Для фильтрации выводимого списка объектов необходимо в тело запроса добавить критерии фильтрации с помощью параметра filter
.
Например:
{
"filter": {
"operator": "and",
"criterions": [
{
"operator": "eq",
"property": {
"alias": "m_Street",
"type": "field"
},
"value": "Рощинская"
}
]
}
}
Внутри параметра filter
необходимо добавить критерии поиска объектов Системы в формате .json. Формат критериев должен содержать в себе корневой элемент {"filter": "operator", "criterions":[]}
.
Например:
{
"paths":
[
"AdrCapitalBuild/WfAdrPointActiveView/AdrPoint/KeyField",
"AdrCapitalBuild/Geometry",
"AdrCapitalBuild/OriginalGeometry"
],
"filter": {
"operator": "and",
"criterions": [
{
"operator": "eq",
"property": {
"alias": "m_Street",
"type": "field"
},
"value": "Рощинская"
}
]
}
}
Параметр operator
в фильтре может принимать значения and или or. Если в запросе приведён только один блок критериев, то значение operator
может быть любым.
В массиве criterions
параметр operator
может принимать значения: «like», «notlike», «gt» (>), «lt» (<), «gte» (>=), «lte» (<=), «eq», «noteq», «empty», «notempty», «in», «notin».
Так можно делать вложенные подкритерии:
{"operator":"and","criterions":[{"operator":"or","criterions":[{"operator":"and","criterions":[]}]}]}.
В массив criterions
добавляются условия поиска в формате:
{
"operator": "operator",
"property":{"alias":"FieldAlias","type":"field"},
"value":"2018-04-25T00:00:00"
}
В параметре alias
указывается псевдоним поля, по которому выполняется поиск и к которому указываются условия в блоке criterions
.
В параметре type
всегда указывается константа field
.
Если нужно использовать несколько вложенных критериев, следует добавить их через запятую:
{
"filter": {
"operator": "and",
"criterions": [
{
"operator": "",
"property": {
"alias": "",
"type": "field"
},
"value": ""
},
{
"operator": "",
"property": {
"alias": "",
"type": "field"
},
"value": ""
}
]
}
}
Если не требуется устанавливать критерии поиска объекта, то параметр criterions
может быть не задан.
Например, тело запроса для получения всех значений Системы определённого типа будет выглядеть следующим образом:
{
"operator":"and",
"criterions":[]
}
В ответ будет возвращаться массив данных (поля объекта, ключи и типы связанных объектов, описание геометрии в формате .geojson и наименование системы координат, если был запрошен геометрический объект), найденных в Системе по заданному условию в следующем формате:
[{
"EntityAlias": "EntityAlias",
"EntityKey": EntityKey,
"Fields": {
"Project": "Name of prpject",
"SomeFieldA": "SomeValueA",
"SomeFieldB": "SomeValueB",
"Geometry": {
"Geojson": {
"type": "Polygon",
"coordinates": [
[
[
101818.45,
635684.6
],
[
101881.62,
635741.48
],
[
101968.61,
635644.87
],
[
101905.44,
635588
],
[
101818.45,
635684.6
]
]
]
},
"Srs": "SomeSrs"
},
"Project": "SomeProject"
}
}]
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}.
На вкладке Body задайте фильтр для выводимых объектов.
Пример тела запроса на поиск всех поставленных на учёт ОКН регионального значения за указанный период времени:
{
"filter": {
"operator": "and",
"criterions": [
{
"operator": "gte",
"property": {
"alias": "ReestrDate",
"type": "field"
},
"value": "2008-01-01T00:00:00" // с 01.01.2008
},
{
"operator":"lte",
"property":{
"alias":"ReestrDate",
"type":"field"
},
"value":"2008-12-31T00:00:00" // по 31.12.2008
},
{
"operator":"eq",
"property":{
"alias":"CultCategoryOKN",
"type":"field"
},
"value":"1001580000010279" //ограничение по справочному значению, сравнение происходит с "Ид" справочного значения "Региональное значение"
}
]
}
}
Нажмите Send. Проверка выполнена успешно, если в ответе возвращён отфильтрованный по заданному условию список объектов:

Получение реплицированных/нереплицированных объектов#
По умолчанию запрос в текущем режиме возвращает информацию по всем объектам проекта: реплицированным и нереплицированным.
Для получения только реплицированных или только нереплицированных данных необходимо использовать в теле запроса параметр owndata
, который применяется к корневому типу объекта.
Чтобы получить собственные данные проекта, укажите для параметра значение
true
:{ "owndata": true }
Чтобы получить реплицированные данные, укажите для параметра значение
false
:{ "owndata": false }
Например, тело запроса для получения данных реплицированных физических лиц будет выглядеть следующим образом:
{
"paths": [
"KeyField"
],
"owndata": false
}
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}.
На вкладке Body задайте параметры для выводимых объектов:
{
"paths": [
"KeyField"
],
"owndata": false
}
Нажмите Send. Проверка выполнена успешно, если в ответе возвращён список объектов по заданному условию:

Получение объекта по ключу#
Для получения информации об объекте используется метод entities/{schemeId}/{typeAlias}/{entityKey} путём выполнения HTTP-POST запроса.
Пример cURL запроса:
curl -X POST HTTPS://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}/{entityKey}
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – алиас схемы проекта;
{typeAlias} – алиас объекта в Системе;
{entityKey} – ключ объекта, информацию о котором необходимо получить.
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v2/entities/{schemeId}/{typeAlias}/{entityKey}.
На вкладке Headers укажите:
- чтобы получить ответ в формате .json:
в столбце [Key] пропишите Content-Type, в столбце [Value] – application/json;
в столбце [Key] пропишите Accept, в столбце [Value] – application/json:
- чтобы получить ответ в формате .xml:
в столбце [Key] пропишите Content-Type, в столбце [Value] – application/json;
в столбце [Key] пропишите Accept, в столбце [Value] – application/xml:
Нажмите Send. Проверка выполнена успешно, если в ответе возвращена информация об объекте с перечнем полей и значениями в них.
Результат проверки в формате .json:

Результат проверки в формате .xml:

Для вывода определённых полей объекта в теле запроса укажите список нужных полей с уровнями вложенности.
Например:
[
"GName",
"CultCategoryOKN/CultCategoryOKN/Name",
"CultKindOKN/CultKindOKN/Name",
"Geometry"
]
Проверка в Postman

Создание объектов в Системе#
Важно
Создание объектов в Системе возможно только в том случае, если права на их создание описаны в xsd-схеме.
Для создания объектов в Системе используется метод runpackage/{businessScope}/{schemeId} путём выполнения HTTP-POST запроса. В заголовке необходимо указывать Content-type: text/xml. В ответе будут возвращены ключ и алиас объекта в Системе, а также псевдоним схемы проекта, в котором был создан объект.
Пример cURL-запроса:
curl -X POST HTTPS://{APIURL}/api/v1/runpackage/{businessScope}/{schemeId} -H 'content-type: text/xml'
где:
{APIURL} – адрес интеграционного сервиса;
{businessScope} – наименование файла xsd, полученного в результате вызова метода xsd;
{schemeId} – псевдоним схемы проекта.
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/runpackage/{businessScope}/{schemeId}:

На вкладке Body вставьте описание – замените схему проекта и ИД файла на нужные значения:
Тело запроса:
<?xml version="1.0" encoding="UTF-8"?>
<DocApplication xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<scheme>
<tyulegenov>Сосногорский МР</tyulegenov> - указать наименование и псевдоним проекта
</scheme>
<Fields>
<StateApplication operation="set"> - установить справочное значение "Новое" в поле [Статус]
<DocRefStateApplication operation="find">
<Fields>
<Name operation="eq" value="Новое"/>
</Fields>
</DocRefStateApplication>
</StateApplication>
<ViewLetter operation="set"> - установить справочное значение "Заявление на получение ГПЗУ" в поле [Вид заявления]
<DocRefApplication operation="find">
<Fields>
<Name operation="eq" value="Заявление на получение ГПЗУ"/>
</Fields>
</DocRefApplication>
</ViewLetter>
<WaySend operation="set"> - установить справочное значение "РПГУ" в поле [Способ подачи заявления]
<DocRefTransferMethod operation="find">
<Fields>
<Name operation="eq" value="РПГУ"/>
</Fields>
</DocRefTransferMethod>
</WaySend>
<ViewResult operation="set"> - установить справочное значение "Электронная" в поле [Форма получения результата]
<DocRefFormOfTransfer operation="find">
<Fields>
<Name operation="eq" value="Электронная"/>
</Fields>
</DocRefFormOfTransfer>
</ViewResult>
<TypeDelivery operation="set"> - установить справочное значение "РПГУ" в поле [Способ получения результата]
<DocRefTransferMethod operation="find">
<Fields>
<Name operation="eq" value="РПГУ"/>
</Fields>
</DocRefTransferMethod>
</TypeDelivery>
<Num operation="set" value="test"/> - установить значение "test" в поле [Номер]
<DateApplication operation="set" value="2020-11-27"/> - установить значение "2020-11-27" в поле [Дата]
<OutNum operation="set" value="564-8"/> - установить значение "564-8" в поле [Исходящий номер]
<OutDate operation="set" value="2020-11-27"/> - установить значение "2020-11-27" в поле [Исходящая дата]
<DocAgent operation="set" value="Доверенность №1 от 12.12.2011"/> - установить значение "Доверенность №1 от 12.12.2011" в поле [Документ, подтверждающий полномочия представителя]
<SubjRoleDeclarer operation="ref"> - установить связь с типом объекта "Физическое лицо"
<SubjPerson operation="find-create"> - осуществить поиск объекта и если нужного нет, то создать новый объект
<Fields>
<LastName operation="set" value="Иванов"/> - установить значение "Иванов" в поле [Фамилия]
<FirstName operation="set" value="Иван"/> - установить значение "Иван" в поле [Имя]
<MiddleName operation="set" value="Иванович"/> - установить значение "Иванович" в поле [отчество]
<DocIdentityType operation="set"> - установить справочное значение "Вид на жительство в РФ" в поле [Тип документа]
<REFDocTypesSubjIdentity operation="find">
<Fields>
<Alias operation="eq" value="REFDocTypesSubjIdentity_1"/>
</Fields>
</REFDocTypesSubjIdentity>
</DocIdentityType>
<DocIdentitySeria operation="set" value="1111" keyField="true"/> - установить значение "1111" в поле [Серия]
<DocIdentityNumber operation="set" value="111111" keyField="true"/> - установить значение "111111" в поле [Номер]
<DocIdentityDateOfIssue operation="set" value="2006-05-04"/> - установить значение "2006-05-04" в поле [Дата выдачи]
<DocIdentityIssueBy operation="set" value="УВД"/>- установить значение "УВД" в поле [Кем выдан]
<Address operation="set" value="Адрес"/> - установить значение "Адрес" в поле [Адрес проживания]
<Telephone operation="set" value="89609998877"/> - установить значение "89609998877" в поле [Телефон]
<Email operation="set" value="mail@mail.ru"/> - установить значение "mail@mail.ru" в поле [Электронная почта]
<IsEntrepreneur operation="set" value="1"/>
</Fields>
</SubjPerson>
</SubjRoleDeclarer>
<ServiceForApplicationRelation operation="ref"> - установить связь с типом объекта "Услуга: Выдача ГПЗУ"
<WfServiceGPZU operation="create"> - создать карточку объекта
<Fields>
<ProcessingStage operation="set"> - установить значение "Новая" в поле [Статус услуги]
<WfRefProcessingStage operation="find">
<Fields>
<Alias operation="eq" value="NewServise"/>
</Fields>
</WfRefProcessingStage>
</ProcessingStage>
<TransferMetodResult operation="set"> - установить значение "РПГУ" в поле [Способ передачи результата]
<DocRefTransferMethod operation="find">
<Fields>
<Name operation="eq" value="РПГУ"/>
</Fields>
</DocRefTransferMethod>
</TransferMetodResult>
<ViewResult operation="set"> - установить значение "Электронная" в поле [Форма передачи результата]
<DocRefFormOfTransfer operation="find">
<Fields>
<Name operation="eq" value="Электронная"/>
</Fields>
</DocRefFormOfTransfer>
</ViewResult>
<DocRelGpzuResult operation="ref"> - установить связь с типом объекта "Градостроительный план ЗУ"
<DocGPZU operation="create"> - создать результат услуги
<Fields>
<DocGpzuZuRelation operation="ref"> - установить связь с типом объекта "Объект для ГПЗУ"
<GknParcel operation="find"> - выполнить поиск объектов по кадастровому номеру "18:30:000736:249"
<Fields>
<KN operation="eq" value="18:30:000736:249"/>
</Fields>
</GknParcel>
</DocGpzuZuRelation>
</Fields>
</DocGPZU>
</DocRelGpzuResult>
</Fields>
</WfServiceGPZU>
</ServiceForApplicationRelation>
<DocApplicationFilesRelation operation="ref"> - установить связь с файлами
<File operation="find"> - выполнить поиск файла по идентификатору "1001380000093502"
<Fields>
<Key operation="eq" value="1001380000093502"/>
</Fields>
</File>
</DocApplicationFilesRelation>
<InfoSetKey operation="ref" updateField="true">
<DmdInfoSet operation="create">
<Fields>
<Name operation="set" value="Тестовый набор данных"/>
<Abstract operation="set" value="Набор данных для проверки загрузки геометрии"/>
</Fields>
<Geometry>
<Geojson operation="geojson" value='{"type":"Polygon","coordinates":[[[300684.6,140818.45],[300741.48,140881.62],[300644.87,140968.61],[300588.0,140905.44],[300684.6,140818.45]]]}'/>
<Srid operation="srid" value="864"/>
</Geometry>
</DmdInfoSet>
</InfoSetKey>
</Fields>
</DocApplication>
Нажмите Send. Ответ будет содержать ключ и алиас объекта в Системе, а также псевдоним схемы проекта, в котором был создан объект:

Авторизуйтесь в Системе и откройте карточку созданного объекта Заявление.
Проверка считается выполненной успешно, если:
в Системе создан объект Заявление:

в карточке Заявление заполнены текстовые и справочные поля в соответствии с xml-описанием на вкладке Body;
во вложении отображается файл;
заявление имеет связь с созданным объектом Услуга: Выдача ГПЗУ:

заявление связано с набором данных, которому задана геометрия:

в услуге есть связь с объектом Градостроительный план ЗУ.
Обновление объектов в Системе#
Для обновления объектов в Системе используется метод runpackage/{businessScope}/{schemeId} путём выполнения HTTP-POST запроса.
В заголовке необходимо указывать Content-Type: text/xml.
Пример cURL-запроса:
curl -X POST HTTPS://{APIURL}/api/v1/runpackage/{businessScope}/{schemeId} -H 'content-type: text/xml'
где:
{APIURL} – адрес интеграционного сервиса;
{businessScope} – наименование файла xsd, полученного в результате вызова метода xsd;
{schemeId} – псевдоним схемы проекта.
Проверка в Postman
Сформируйте POST-запрос к интеграционному сервису API Jasper вида: https://{APIURL}/api/v1/runpackage/{businessScope}/{schemeId}:

На вкладке Body вставьте xml-код:
<?xml version="1.0" encoding="UTF-8"?>
<DocApplication xmlns:vc="httр://www.w3.org/2007/XMLSchema-versioning"
xmlns:xsi="httр://www.w3.org/2001/XMLSchema-instance" operation="find-create">
<scheme>
<sosnogorsky>Сосногорский МР</sosnogorsky>
</scheme>
<Fields>
<Num operation="set" value="1554" keyField="true"/>
<DocAgent operation="set" value="Доверенность №1 от 24.03.2022" updateField="true"/>
</Fields>
</DocApplication>
Нажмите Send.
Авторизуйтесь в Системе и откройте карточку обновлённого объекта Заявление.
Проверка считается выполненной успешно, если в карточке объекта c номером 1554 изменено значение в поле [Документ, подтверждающий полномочия представителя]:

Отправка сообщения о состоянии процесса (статуса)#
Отправить сообщение о статусе выполнения бизнес-процесса, например, о том, что результат услуги был успешно передан на портал услуг, можно только для того объекта Системы, для которого была зарегистрирована кнопка Отправить.
Для отправки сообщения пользователю Системы по заданному объекту используется метод status/{schemeId}/{entityAlias}/{entityKey} путём выполнения HTTP-PATCH запроса.
В заголовке необходимо указать Content-Type: application/json. При успешном ответе вернётся HTTP Status 204.
В тело запроса помещается сообщение (уведомление), которое необходимо доставить пользователю в кодировке UTF-8. Полученное сообщение (уведомление) может быть отображено для пользователя в отдельном поле [Результат отправки статуса] в карточке объекта Системы. Данная возможность необходима в случаях, когда пользователю требуется выполнить действие, указанное в сообщении (уведомлении).
Пример cURL запроса:
curl -X PATCH HTTPS://{APIURL}/api/v1/status/{schemeId}/{entityAlias}/{entityKey} -H 'content-type: application/json' -d '{ "successCode": "true", "message": "some message" }'
где:
{APIURL} – адрес интеграционного сервиса;
{schemeId} – псевдоним схемы проекта;
{entityAlias} – алиас объекта;
{entityKey} – ключ объекта.
"successCode"
может принимать значения "true"
, "false"
или быть пустым. С помощью "successCode"
в Системе задаётся возможность отправки результата пользователем в интеграционный сервис, в том числе, если потребуются исправления в Системе в результате валидации на стороне интеграционного сервиса.
Таким образом, "successCode"
регулирует состояние кнопки Отправить в интерфейсе Системы.
"successCode":"true"
должен быть направлен в случае, когда результат был успешно доставлен во внешнюю систему, например, на портал услуг.
Это означает завершение интеграционного взаимодействия по конкретному экземпляру объекта. В "message"
может содержаться уведомление для пользователя об успешной отправке:


"successCode":"false"
должен быть направлен в случае, если после некоторых действий пользователя в Системе и попытки отправить результат в интеграционный сервис, произошла ошибка, которую необходимо устранить и отправить результат повторно.
Например, не пройдена валидация на стороне интеграционного сервиса. В "message"
должно быть указано сообщение для пользователя, отражающее суть ошибки.
Во всех остальных случаях "successCode"
может быть пустым: "successCode":""
. Это означает, что состояние кнопки Отправить в Системе останется неизменным.
В таком сценарии пользователю Системы можно просто передать сообщение (уведомление). Например, что валидация переданного результата прошла успешно.