Перейти к основному содержимому

Методы работы с тегами

На этой странице представлены основные методы API для работы с тегами категорий файлов в системе Brainysoft: создание, получение, обновление, удаление тегов, изменение порядка, публикация и снятие публикации, а также получение статистики по тегам.

Методы API работы с тегами категорий файлов

МетодURLОписание
GET|HEADapi/tagsПолучение списка тегов
POSTapi/tagsСоздание нового тега
PUT|PATCHapi/tags/{tag}Обновление тега (title)
GET|HEADapi/tags/{tag}Получение информации о теге
DELETEapi/tags/{tag}Удаление тега
PUTapi/tags/{tag}/changeOrderИзменение порядка тегов
PUTapi/tags/{tag}/publishПубликация тега
PUTapi/tags/{tag}/unpublishСнятие публикации тега
GETapi/statistics/tagsПолучить статистику по тегам

Получение списка тегов

GET /api/tags

Описание

Метод возвращает список всех доступных тегов категорий файлов с их атрибутами: название, алиас, статус, иерархия.

Пример запроса

GET /api/tags

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750164920000, // Время ответа (UNIX timestamp, ms)
"data": [
{
"id": 1, // Уникальный идентификатор тега
"title": "Фотографии", // Название тега (отображается пользователю)
"alias": "fotografii", // Техническое имя тега (может использоваться в URL/API)
"status": "PUBLISHED", // Статус тега
"parentId": 0, // ID родительского тега (0 — если тег верхнего уровня)
"level": 1 // Уровень вложенности (например, 1 — корневой тег)
}
]
}

Создание нового тега

POST /api/tags

Описание

Метод позволяет создать новый тег в системе. В теле запроса передаются параметры нового тега, такие как название, алиас, статус, родительский тег и уровень вложенности.

Пример запроса

POST /api/tags
{
"id": 46, // Уникальный идентификатор тега
"title": "Документы для займа", // Название тега (отображается пользователю)
"alias": "loan_documents", // Техническое имя тега (может использоваться в URL/API)
"status": "PUBLISHED", // Статус тега
"parentId": 0, // ID родительского тега (0 — если тег верхнего уровня)
"level": 1 // Уровень вложенности (например, 1 — корневой тег)
}

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750682383000, // Время ответа (UNIX timestamp, ms)
"data": {
"result": "ok", // Результат операции
"tag": 46 // Уникальный идентификатор созданного тега
}
}

Обновление тега (title)

PUT|PATCH /api/tags/{tag}

Описание

Метод позволяет изменить только название (title) существующего тега по его идентификатору. Другие поля (alias, status, parentId, level) изменить этим методом нельзя — они остаются без изменений, alias на основе нового title будет сгенерирован системой автоматически.

Параметры запроса

{tag} (integer, обязательный) — уникальный идентификатор тега.

Пример запроса

PUT|PATCH /api/tags/47
{
"title": "Четвертый документ для займа" // Новое название тега
}

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750683228000, // Время ответа (UNIX timestamp, ms)
"data": {
"id": 47, // Уникальный идентификатор тега
"title": "Четвертый документ для займа", // Название тега (отображается пользователю)
"alias": "chetvertyiy-dokument-dlya-zayma", // Техническое имя тега (сгенерировано автоматически)
"status": "PUBLISHED", // Статус тега
"parentId": null, // ID родительского тега (null — если тег верхнего уровня)
"level": 0 // Уровень вложенности
}
}

Получение информации о теге

GET /api/tags/{tag}

Описание

Метод возвращает подробную информацию о конкретном теге по его идентификатору. Используется для получения свойств тега, его статуса, иерархии и других характеристик.

Параметры запроса

{tag} (integer, обязательный) — уникальный идентификатор тега.

Пример запроса

GET /api/tags/4

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750681352000, // Время ответа (UNIX timestamp, ms)
"data": {
"id": 4, // Уникальный идентификатор тега
"title": "Документы заемщика", // Название тега (отображается пользователю)
"alias": "dokumentyi-zaemschika", // Техническое имя тега (может использоваться в URL/API)
"status": "PUBLISHED", // Статус тега
"parentId": 0, // ID родительского тега (0 — если тег верхнего уровня)
"level": 1 // Уровень вложенности (например, 1 — корневой тег)
}
}

Удаление тега

DELETE /api/tags/{tag}

Описание

Метод позволяет удалить тег по его идентификатору.

Параметры запроса

{tag} (integer, обязательный) — уникальный идентификатор тега.

Пример запроса

DELETE /api/tags/48

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750683985000, // Время ответа (UNIX timestamp, ms)
"data": {
"status": "deleted" // Статус удаления тега
}
}

Изменение порядка тегов

PUT /api/tags/{tag}/changeOrder

Описание

Метод позволяет изменить порядок (позицию) тега относительно другого тега в списке. Для этого указывается идентификатор соседнего тега и желаемая позиция относительно него.

Параметры запроса

{tag} (integer, обязательный) — уникальный идентификатор тега, порядок которого изменяется.

Тело запроса (application/json)

ПолеТипОписание
neighborTagIdintegerИдентификатор соседнего тега, относительно которого будет изменён порядок
positionstringПозиция относительно соседнего тега. Возможные значения: "before" — перед указанным тегом, "after" — после указанного тега

Пример запроса

PUT /api/tags/47/changeOrder
{
"neighborTagId": 46, // Идентификатор соседнего тега
"position": "after" // Позиция относительно соседнего тега
}

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750833694000, // Время ответа (UNIX timestamp, ms)
"data": {
"result": "ok", // Результат операции
"tag": 47, // Уникальный идентификатор тега
"currentOrder": "0 46" // Текущий порядок тегов
}
}

Публикация и снятие публикации тега

PUT /api/tags/{tag}/publish - Публикация тега

PUT /api/tags/{tag}/unpublish - Снятие публикации тега

Описание

publish - метод переводит тег в статус "опубликован", делая его доступным для использования в системе.

unpublish - метод переводит тег в статус "не опубликован", делая его недоступным для использования в системе.

Параметры запроса

{tag} (integer, обязательный) — уникальный идентификатор тега.

Пример запроса

PUT /api/tags/47/unpublish

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750684897000, // Время ответа (UNIX timestamp, ms)
"data": {
"id": 47, // Уникальный идентификатор тега
"title": "Четвертый документ для займа", // Название тега (отображается пользователю)
"alias": "chetvertyiy-dokument-dlya-zayma", // Техническое имя тега (может использоваться в URL/API)
"status": "UNPUBLISHED", // Статус тега
"parentId": null, // ID родительского тега (null — если тег верхнего уровня)
"level": 0 // Уровень вложенности
}
}

Получить статистику по тегам

GET /api/statistics/tags

Описание

Метод возвращает статистику по всем тегам категорий файлов, включая количество файлов с каждым тегом.

Пример запроса

GET /api/statistics/tags

Пример успешного ответа

{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750164401000, // Время ответа (UNIX timestamp, ms)
"data": {
"tags": [
{
"id": 1, // Уникальный идентификатор тега
"alias": "fotografii", // Техническое имя тега (может использоваться в URL/API)
"label": "Фотографии", // Название тега (синоним поля title, используется в статистике)
"files": 0, // Количество текущих файлов с этим тегом
"deleted": 0, // Количество удалённых файлов с этим тегом
"all": 0 // Общее количество файлов с этим тегом
}
]
}
}

Описание полей

ПолеТипОписание
statusstringСтатус выполнения запроса
timestampintegerВремя ответа (UNIX timestamp, ms)
dataobject/arrayОсновные данные ответа
idintegerУникальный идентификатор тега
titlestringНазвание тега (отображается пользователю)
aliasstringТехническое имя тега (может использоваться в URL/API)
statusstringСтатус тега (PUBLISHED, UNPUBLISHED, DRAFT и др.)
parentIdintegerID родительского тега (0 или null — если тег верхнего уровня)
levelintegerУровень вложенности (например, 1 — корневой тег)
labelstringНазвание тега (синоним поля title, используется в статистике)
filesintegerКоличество текущих файлов с этим тегом
deletedintegerКоличество удалённых файлов с этим тегом
allintegerОбщее количество файлов с этим тегом
resultstringРезультат операции
tagintegerУникальный идентификатор тега
currentOrderstringТекущий порядок тегов
neighborTagIdintegerИдентификатор соседнего тега
positionstringПозиция относительно соседнего тега