Table of Contents

Загрузка файла в документ

Алгоритм

  • Авторизация;
  • Создание документа;
  • Загрузка временного файла в хранилище;
  • Добавление временного файла из хранилища документу.

Авторизация

Необходимо пройти стандартную процедуру авторизации требуемого пользователя в выбранном хранилище.

Варианты авторизации:

Создание документа

Необходимо создать или указать существующий документ, которому будет добавлен файл.

Создание справочника

В консоли необходимо указать название справочника, в котором должен находиться документ для загрузки файла. Производится запрос полного списка справочников по адресу "/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.