Загрузка файла в документ
Алгоритм
- Авторизация;
- Создание документа;
- Загрузка временного файла в хранилище;
- Добавление временного файла из хранилища документу.
Авторизация
Необходимо пройти стандартную процедуру авторизации требуемого пользователя в выбранном хранилище.
Варианты авторизации:
- Авторизация с использованием командной строки;
- Авторизация с использованием 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-сервер ПОЛИНОМ загружает его в хранилище временных файлов, а в ответ приходит имя временного файла
в хранилище.
Добавление временного файла из хранилища документу
Идентификатор документа, имя временного файла, а также дата и время создания и последнего редактирования
отправляются 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.