Загрузка файла в документ
Алгоритм
- Авторизация;
- Создание документа;
- Загрузка временного файла в хранилище;
- Добавление временного файла из хранилища документу.
Авторизация
Необходимо пройти стандартную процедуру авторизации требуемого пользователя в выбранном хранилище.
Варианты авторизации:
- Авторизация с использованием командной строки;
- Авторизация с использованием Swagger;
- Авторизация в C# .NET.
Создание документа
Необходимо создать или указать существующий документ, которому будет добавлен файл.
Создание справочника
В консоли необходимо указать название справочника, в котором должен находиться документ для загрузки файла. Производится запрос полного списка справочников по адресу "/reference/all":
Если в полученном списке уже существует справочник с требуемым названием, то дальнейшая работа производится с ним.
Если в полученном списке справочника с требуемым названием нет, то отправляется POST-запрос на создание справочника по адресу "/reference"
Запрос "/reference/all"
Не имеет параметров или тела запроса.
Ответ на запрос "/reference/all"
В качестве ответа возвращается список всех справочников, существующих на текущий момент в хранилище.
[
{
"description": "Описание справочника",
"documentCatalog": {
"reference": {
"objectId": 1,
"typeId": 48
},
"isEntry": false,
"classId": "DOCUMENT",
"count": 0,
"iconCode": 57988,
"iconColor": 0,
"path": [
{
"name": "Справочник",
"objectId": 1,
"typeId": 48
}
],
"name": "Документы",
"objectId": 1,
"typeId": 69
},
"viewpointCatalog": {
"reference": {
"objectId": 1,
"typeId": 48
},
"classId": "VIEWPOINT",
"count": 0,
"iconCode": 58059,
"iconColor": 0,
"path": [
{
"name": "Справочник",
"objectId": 1,
"typeId": 48
}
],
"name": "Представления",
"objectId": 1,
"typeId": 91
},
"iconCode": 57909,
"iconColor": 0,
"path": [],
"name": "Справочник",
"objectId": 1,
"typeId": 48
}
]
Запрос создания справочника "/reference"
В запросе в качестве параметра передается имя создаваемого справочника.
curl -X 'POST' \
'http://localhost:5000/api/v1/reference?name=%D0%B8%D0%BC%D1%8F%20%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B0' \
-H 'accept: application/json' \
-H 'Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiI4YTVhYWNiZjY0YzM0ZWY4YjY3ZjVlYmRiMTk4YjcwZCIsIm5hbWVpZCI6IlVzZXI6MToyIiwidW5pcXVlX25hbWUiOiJhZG1pbiIsIm5iZiI6MTcxOTMxMzkzOCwiZXhwIjoxNzE5MzE1NzM4LCJpYXQiOjE3MTkzMTM5Mzh9.cYO_tTKicSAtIwDJI0_DUO5DKVGmfYzgqIvwXg4gcN0' \
-d ''
Ответ на запрос создания справочника "/reference"
В качестве ответа возвращается информация по созданному справочнику.
{
"description": null,
"documentCatalog": {
"reference": {
"objectId": 1,
"typeId": 48
},
"isEntry": false,
"classId": "DOCUMENT",
"count": 0,
"iconCode": 57988,
"iconColor": 0,
"path": [
{
"name": "имя справочника",
"objectId": 1,
"typeId": 48
}
],
"name": "Документы",
"objectId": 1,
"typeId": 69
},
"viewpointCatalog": {
"reference": {
"objectId": 1,
"typeId": 48
},
"classId": "VIEWPOINT",
"count": 0,
"iconCode": 58059,
"iconColor": 0,
"path": [
{
"name": "имя справочника",
"objectId": 1,
"typeId": 48
}
],
"name": "Представления",
"objectId": 1,
"typeId": 91
},
"iconCode": 57909,
"iconColor": 0,
"path": [],
"name": "имя справочника",
"objectId": 1,
"typeId": 48
}
Создание группы документов
В консоли необходимо указать название группы документов, в которой должен находиться документ для загрузки файла. Производится запрос каталога документов, соответствующего справочнику, по адресу "/document-catalog/by-reference". Для полученного каталога запрашивается список групп документов по адресу "/document-group/by-catalog":
- Если в полученном списке уже существует группа с требуемым названием, то дальнейшая работа производится с ней.
- Если в полученном списке группы с требуемым названием нет, то отправляется POST-запрос на создание группы документов по адресу "/document-group"
Запрос "/document-catalog/by-reference"
В качестве параметра запроса передается идентификатор справочника, каталог документов которого нужно получить.
curl -X 'GET' \
'http://localhost:5000/api/v1/document-catalog/by-reference?referenceId=1' \
-H 'accept: application/json' \
-H 'Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiI4YTVhYWNiZjY0YzM0ZWY4YjY3ZjVlYmRiMTk4YjcwZCIsIm5hbWVpZCI6IlVzZXI6MToyIiwidW5pcXVlX25hbWUiOiJhZG1pbiIsIm5iZiI6MTcxOTMxMzkzOCwiZXhwIjoxNzE5MzE1NzM4LCJpYXQiOjE3MTkzMTM5Mzh9.cYO_tTKicSAtIwDJI0_DUO5DKVGmfYzgqIvwXg4gcN0'
Ответ на запрос "/document-catalog/by-reference"
В качестве ответа возвращается информация по каталогу документов в требуемом справочнике.
{
"reference": {
"objectId": 1,
"typeId": 48
},
"isEntry": false,
"classId": "DOCUMENT",
"count": 1,
"iconCode": 57988,
"iconColor": 0,
"path": [
{
"name": "Справочник",
"objectId": 1,
"typeId": 48
}
],
"name": "Документы",
"objectId": 1,
"typeId": 69
}
Запрос "/document-group/by-catalog"
В качестве параметра запроса передается идентификатор каталога документов, группы документов которого нужно получить.
curl -X 'GET' \
'http://localhost:5000/api/v1/document-group/by-catalog?documentCatalogId=1' \
-H 'accept: application/json' \
-H 'Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiI4YTVhYWNiZjY0YzM0ZWY4YjY3ZjVlYmRiMTk4YjcwZCIsIm5hbWVpZCI6IlVzZXI6MToyIiwidW5pcXVlX25hbWUiOiJhZG1pbiIsIm5iZiI6MTcxOTMxMzkzOCwiZXhwIjoxNzE5MzE1NzM4LCJpYXQiOjE3MTkzMTM5Mzh9.cYO_tTKicSAtIwDJI0_DUO5DKVGmfYzgqIvwXg4gcN0'
Ответ на запрос "/document-group/by-catalog"
В качестве ответа возвращается информация по каталогу документов в требуемом справочнике.
[
{
"isEntry": false,
"classId": null,
"parentCatalog": {
"objectId": 1,
"typeId": 69
},
"parentGroup": null,
"description": null,
"hasObjects": true,
"count": 3,
"iconCode": 58010,
"iconColor": 0,
"path": [
{
"name": "Справочник",
"objectId": 1,
"typeId": 48
},
{
"name": "Документы",
"objectId": 1,
"typeId": 69
}
],
"name": "Группа",
"objectId": 1,
"typeId": 70
}
]
Запрос создания группы документов "/document-group"
В качестве параметра запроса передается имя создаваемой группы.
curl -X 'POST' \
'http://localhost:5000/api/v1/document-group?name=%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B0' \
-H 'accept: application/json' \
-H 'Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiI4YTVhYWNiZjY0YzM0ZWY4YjY3ZjVlYmRiMTk4YjcwZCIsIm5hbWVpZCI6IlVzZXI6MToyIiwidW5pcXVlX25hbWUiOiJhZG1pbiIsIm5iZiI6MTcxOTMxMzkzOCwiZXhwIjoxNzE5MzE1NzM4LCJpYXQiOjE3MTkzMTM5Mzh9.cYO_tTKicSAtIwDJI0_DUO5DKVGmfYzgqIvwXg4gcN0' \
-H 'Content-Type: application/json' \
-d '{
"objectId": 1,
"typeId": 69
}'
В теле запроса передаются идентификаторы каталога или группы документов, в которой должна быть создана новая группа.
{
"objectId": 1,
"typeId": 69
}
Ответ на запрос создания группы документов "/document-group"
В качестве ответа возвращается информация по созданной группе документов.
{
"isEntry": false,
"classId": null,
"parentCatalog": {
"objectId": 1,
"typeId": 69
},
"parentGroup": null,
"description": null,
"hasObjects": false,
"count": 0,
"iconCode": 58010,
"iconColor": 0,
"path": [
{
"name": "Справочник",
"objectId": 1,
"typeId": 48
},
{
"name": "Документы",
"objectId": 1,
"typeId": 69
}
],
"name": "Группа",
"objectId": 170,
"typeId": 70
}
Создание документа
В консоли необходимо указать название документа, которому будет добавлен файл. Производится запрос списка документов группы документов по адресу "/document/by-document-group":
Если в полученном списке уже существует документ с требуемым названием, то дальнейшая работа производится с ним.
Если в полученном списке документа с требуемым названием нет, то отправляется POST-запрос на создание документа по адресу "/document"
Запрос "/document/by-document-group"
В качестве параметра запроса передается идентификатор группы документов, документы которой нужно получить.
curl -X 'GET' \
'http://localhost:5000/api/v1/document/by-document-group?documentGroupId=1' \
-H 'accept: application/json' \
-H 'Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiI4YTVhYWNiZjY0YzM0ZWY4YjY3ZjVlYmRiMTk4YjcwZCIsIm5hbWVpZCI6IlVzZXI6MToyIiwidW5pcXVlX25hbWUiOiJhZG1pbiIsIm5iZiI6MTcxOTMxMzkzOCwiZXhwIjoxNzE5MzE1NzM4LCJpYXQiOjE3MTkzMTM5Mzh9.cYO_tTKicSAtIwDJI0_DUO5DKVGmfYzgqIvwXg4gcN0'
Ответ на запрос "/document/by-document-group"
В качестве ответа возвращается список документов.
[
{
"ownerGroup": {
"name": "Группа документов",
"objectId": 1,
"typeId": 70
},
"files": [],
"applicability": 0,
"iconCode": 63252,
"iconColor": 0,
"path": [
{
"name": "Справочник",
"objectId": 1,
"typeId": 48
},
{
"name": "Документы",
"objectId": 1,
"typeId": 69
},
{
"name": "Группа документов",
"objectId": 1,
"typeId": 70
}
],
"name": "Документ",
"objectId": 1,
"typeId": 71
}
]
Запрос создания документа "/document"
В теле запроса передаются идентификатор группы документов, в которой должен быть создан документ, и его имя.
{
"groupId": 1,
"name": "Новый документ"
}
Ответ на запрос создания документа "/document"
В качестве ответа возвращается информация по созданному документу.
{
"ownerGroup": {
"name": "Группа документов",
"objectId": 1,
"typeId": 70
},
"files": [],
"applicability": 0,
"iconCode": 63252,
"iconColor": 0,
"path": [
{
"name": "Справочник",
"objectId": 1,
"typeId": 48
},
{
"name": "Документы",
"objectId": 1,
"typeId": 69
},
{
"name": "Группа документов",
"objectId": 1,
"typeId": 70
}
],
"name": "Новый документ",
"objectId": 2,
"typeId": 71
}
Загрузка временного файла в хранилище
В консоли необходимо указать полный путь до загружаемого файла. Указанный файл отправляется в теле POST-запроса в формате "multipart/form-data" по адресу "/file/upload". Web-сервер ПОЛИНОМ производит его загрузку в хранилище временных файлов. Ответ от web-сервера ПОЛИНОМ приходит в виде строки с наименованием временного файла в хранилище.
Добавление временного файла из хранилища документу
Идентификатор документа, дата и время его создания и последнего редактирования и наименование временного файла в хранилище отправляются в POST-запросе по адресу "/file/add-to-document". Web-сервер ПОЛИНОМ добавляет файл из хранилища документу.
Запрос "/file/add-to-document"
В теле запроса передаются идентификатор группы документов, в которой должен быть создан документ, и его имя.
{
"objectId": 2,
"typeId": 71,
"fileName": "Картинка.jpg",
"temporaryFileName": "ytrf1odl.3sr",
"creationDate": "2024-06-25T11:48:30.515Z",
"modificationDate": "2024-06-25T11:48:30.515Z"
}
Ответ на запрос "/file/add-to-document"
В качестве ответа возвращается статус запроса. В случае, если файл добавлен успешно, возвращается 200 OK.