Перейти к содержанию

Создание группы ПО

Запрос

Тип Метод
POST /software_groups/create

Описание: При выполнении запроса будет создана группа ПО с заданными параметрами.

Позволяет также управлять связями многие ко многим с другими моделями через поле _relations.

Ключами в поле _relations могут быть названия полей моделей ссылающиеся на другие. Например если у модели связь с моделью правил корреляции и в нем хранится объект связанного правила то это поле можно использовать при управлении данной связью.

Управление работает следующим образом:

  • Если поля в объекте _relations отсутствуют зависимости не обновляются;
  • Если поле зависимости указано и в значении не пустой список идентификаторов, то связи модели приводятся к описанному состоянию;
  • Если поле зависимости указано и в значении пустой список то все связи удаляются;
  • Зависимости игнорируются в теле запроса;
  • Зависимости в ответе всегда null.

Например следующий запрос:

{
  "name": "Test",
  ...
  "_relations": {
    "logmule_go_rules": [] // - очистит все связи с правилами
    // "logmule_go_rules": ["uuid1", "uuid2"] // - создаст связь с 2 правилами
    // "logmule_go_rules": ["uuid1"] // - оставит связь только с первым правилом
  }
}
Пример запроса

POST
http://127.0.0.1/cruddy/v2/software_groups/create

Тело запроса:

Параметр Тип данных Обязательность Описание
name string Required Уникальное название группы ПО
description string Optional Описание
add_new_software_versions boolean Optional Флаг добавления приложений с новыми версиями
_relations object Optional Словарь описывающий связанные модели через идентификаторы
Пример тела запроса

{
  "name": "Новая группа ПО",
  "description": "Описание новой группы ПО",
  "add_new_software_versions": false,
  "_relations": {
    "software": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  }
}

Успешный ответ

Статус код: 201 - успешное создание группы ПО.

Формат: JSON.

Тело ответа: модель созданной группы ПО.

Пример ответа

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created_at": "2023-12-20T00:00:01.652259Z",
  "updated_at": "2023-12-20T00:00:01.652259Z",
  "trace_id": "uuid",
  "name": "Новая группа ПО",
  "description": "Описание новой группы ПО",
  "add_new_software_versions": false,
  "software": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "trace_id": "uuid",
      "name": "string",
      "raw_output_line": "string",
      "version": "string",
      "release": "string",
      "os": "string",
      "display_name": "string",
      "description": "string",
      "software_group_id": "d7939ec9-4754-44e2-b522-27172eae4658",
      "tsvector": "'17':4,12 '17.5.2.1':8,16,17 'driver':3,11 'for':5,13 'microsoft':1,9 'odbc':2,10 'server':7,15 'sql':6,14"
    }
  ],
  "_relations": {
    "software": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  }
}

Другие возможные ответы

Код Ответ Описание
400 Bad Request Неверный тип параметра запроса, либо отсутствует обязательный параметр
409 name_already_used Попытка создать объект с существующим уникальным атрибутом
500 Internal Server Error Другие ошибки при создании объекта

Примечание: Текст ошибки не фиксированный, может изменяться в зависимости от фактического ответа получателя запроса.

Пример ответа

Код 400

{
  "error": "Bad Request",
  "error_code": 400
}

Код 409

{
  "error": "name_already_used",
  "error_code": 409,
  "extra": {
    "fields": [
      "name"
    ]
  }
}

Код 500

{
  "error": "Internal Server Error",
  "error_code": 500
}