Table of Contents

Описание изменений REST API ПОЛИНОМ:MDM

Версия 23.3 → 24


📋 Обзор изменений

В версии 24 добавлено 48 новых endpoints, расширены модели данных и улучшена функциональность работы с сортаментами, материалами, документами и свойствами объектов.


🔗 Новые Endpoints

1. AllPartSizes (Размеры изделий)

Endpoint Метод Описание
/api/v1/all-part-sizes/is-available POST Проверка наличия вкладки "Все размеры" у группы объектов
/api/v1/all-part-sizes/get-class-info POST Получение информации о классе изделий

2. AssortmentInstances (Экземпляры сортаментов)

Endpoint Метод Описание
/api/v1/assortment-instances/get POST Получение экземпляров сортамента по материалу и типоразмеру
/api/v1/assortment-instances/count POST Подсчёт количества экземпляров сортамента
/api/v1/assortment-instances/create POST Создание экземпляра сортамента

3. Assortments (Сортаменты)

Endpoint Метод Описание
/api/v1/assortments/get-by-material POST Получение сортаментов по материалу
/api/v1/assortments/get-path POST Получение пути к каталогу сортаментов
/api/v1/assortments/link-to-materials POST Установка связи между сортаментом и материалами
/api/v1/assortments/create POST Создание сортамента в указанной группе

4. ClassificationObject (Объекты классификации)

Endpoint Метод Описание
/api/v1/classification-object/update-class-id POST Изменение идентификатора класса у каталога или группы
/api/v1/classification-object/get-access-rights POST Получение прав для элементов классификации
/api/v1/classification-object/get-multi-classification-paths POST Получение путей множественной классификации объекта
/api/v1/classification-object/get-multi-classification-elements POST Получение оригинального элемента и его множественных классификаций

5. Concept (Понятия)

Endpoint Метод Описание
/api/v1/concept/get-concept-as-own POST Получение понятия для назначения как собственного
/api/v1/concept/create POST Создание нового понятия

6. Document (Документы)

Endpoint Метод Описание
/api/v1/document/get-template POST Получение шаблона для заполнения свойств документа
/api/v1/document/create-with-values POST Создание документа с параметрами
/api/v1/document/link-document-owners POST Привязка документа к владельцам
/api/v1/document/unlink-document-owners POST Отвязка документа от владельцев

7. Element (Элементы)

Endpoint Метод Описание
/api/v1/element/get-link-def-end-for-sort-mat POST Получение конца определения связи для материала/сортамента
/api/v1/element/create-with-values POST Создание элемента с параметрами

8. Favorites (Избранное)

Endpoint Метод Описание
/api/v1/favorites/get-by-id POST Получение избранного элемента по ID
/api/v1/favorites-catalog/get-by-id POST Получение каталога избранного по ID

9. Login (Авторизация)

Endpoint Метод Описание
/api/v1/login/current-storage-info GET Получение данных о текущем хранилище

10. Materials (Материалы)

Endpoint Метод Описание
/api/v1/materials/get-by-assortment POST Получение материалов по сортаменту
/api/v1/materials/get-path POST Получение пути к каталогу материалов
/api/v1/materials/link-to-assortments POST Установка связи между материалом и сортаментами
/api/v1/materials/create POST Создание материала в указанной группе

11. PropertyOwner (Владельцы свойств)

Endpoint Метод Описание
/api/v1/property-owner/get-by-id POST Получение владельца свойств по ID
/api/v1/property-owner/add-table-property-row POST Добавление строки в табличное свойство
/api/v1/property-owner/remove-table-property-row POST Удаление строки из табличного свойства
/api/v1/property-owner/replace-table-property-row POST Изменение позиции строки в табличном свойстве
/api/v1/property-owner/set-table-property-values POST Установка значений свойств таблицы

12. RestrictedList (Ограничительные перечни)

Endpoint Метод Описание
/api/v1/restricted-list/get-by-group-property-owner POST Получение ограничительных перечней владельца свойств

13. Search (Поиск)

Endpoint Метод Описание
/api/v1/search/get-compability-elements POST Получение совместимых элементов

14. StandardSizes (Типоразмеры)

Endpoint Метод Описание
/api/v1/standard-sizes/get-by-assortment POST Получение типоразмеров по сортаменту
/api/v1/standard-sizes/get-path POST Получение пути к группе типоразмеров
/api/v1/standard-sizes/get-defined-dimensions POST Получение списка свойств определяемых размеров
/api/v1/standard-sizes/create-template POST Создание шаблона типоразмера
/api/v1/standard-sizes/get-template POST Получение шаблона типоразмера
/api/v1/standard-sizes/update-template POST Редактирование шаблона типоразмера
/api/v1/standard-sizes/create POST Создание типоразмера для сортамента

15. Storage (Хранилище)

Endpoint Метод Описание
/api/v1/storage/get-storage-settings POST Получение настроек хранилища
/api/v1/storage/set-storage-settings POST Установка настроек хранилища

16. Tree (Деревья)

Endpoint Метод Описание
/api/v1/tree/get-scope-classification-filter-items POST Получение элементов фильтра для областей фильтрации

17. Viewpoint (Представления)

Endpoint Метод Описание
/api/v1/viewpoint/get-template POST Получение шаблона для заполнения свойств представления
/api/v1/viewpoint/create-with-values POST Создание представления с параметрами
/api/v1/viewpoint-catalog/get-by-id POST Получение каталога представлений по ID

📊 Изменения в моделях данных

1. IAssortmentInstance (Новая модель)

{
  "name": "string",
  "iconCode": "integer",
  "iconColor": "integer",
  "writeAccess": "boolean",
  "applicability": "enum",
  "id": "string",
  "objectId": "integer",
  "typeId": "enum",
  "path": ["INamedObject"],
  "ownerGroup": "IIdentifiableObject",
  "isMaterial": "boolean",
  "isAssortmentInstancesOwner": "boolean",
  "hasParts": "boolean",
  "designationPrefix": "string",
  "designationUpperPart": "string",
  "designationLowerPart": "string",
  "designationPostfix": "string"
}

Описание: Экземпляр сортамента с информацией о обозначении и принадлежности к материалам.


2. ICreateAssortmentInstanceRequest (Новая модель)

{
  "assortment": "IIdentifiableObject",
  "material": "IIdentifiableObject",
  "standardSize": "IIdentifiableObject",
  "assortmentInstanceData": "ICreateElementWithValuesRequest"
}

Описание: Запрос создания экземпляра сортамента с привязкой к материалу и типоразмеру.


3. ICreateAssortmentRequest (Новая модель)

{
  "material": "IIdentifiableObject",
  "assortmentGroup": "IIdentifiableObject",
  "assortmentDocument": "IIdentifiableObject",
  "standardSpecificationsDocument": "IIdentifiableObject",
  "addedOwnConcepts": ["IIdentifiableObject"],
  "properties": ["IPropertyValueItem"],
  "propertyValues": "IAblePropertyValuesRequest"
}

Описание: Запрос создания сортамента с документами и свойствами.


4. IGetClassInfoResponse (Новая модель)

{
  "name": "string",
  "description": "string",
  "image": "IImagePropertyValue"
}

Описание: Информация о классе изделий с изображением.


5. IUpdateClassIdRequest (Изменена)

Версия 23.3: Отсутствует Версия 24:

{
  "objectId": "integer",
  "typeId": "enum",
  "classId": "string",
  "changeIdsForExistingObjects": "boolean"
}

Описание: Запрос изменения идентификатора класса с опцией обновления существующих объектов.


6. IAppointedConcept (Расширена)

Добавлены поля:

  • isPredefined (boolean) - Признак предопределённого понятия
  • isInherited (boolean) - Признак наследования от вышестоящих групп

7. IConceptPropertySource (Расширена)

Добавлены поля:

  • isInherited (boolean) - Признак наследования источника свойства

8. IPropertyOwnerResponse (Расширена)

Добавлено поле:

  • propertyOwner (IPropertyOwnerRef) - Ссылка на владельца свойств

9. ISetPropertyValuesRequest (Изменена)

Версия 23.3:

{
  "owner": "IIdentifiableObject",
  "properties": ["IPropertyValueItem"],
  "addedOwnConcepts": ["IIdentifiableObject"],
  "deletedOwnConcepts": ["IIdentifiableObject"],
  "deletedOwnProperties": ["IIdentifiableObject"],
  "deletedDynamicProperties": ["IIdentifiableObject"],
  "values": "IAblePropertyValuesRequest"
}

Версия 24:

{
  "owner": "IIdentifiableObject",
  "properties": ["IPropertyValueItem"],
  "values": "IAblePropertyValuesRequest"
}

Изменение: Удалены поля для массового удаления концептов и свойств.


10. ITableValue (Изменена)

Версия 23.3:

{
  "columns": ["IIdentifiableObject"],
  "rows": ["ITablePropertyRow"]
}

Версия 24:

{
  "rows": ["ITablePropertyRow"]
}

Изменение: Удалено поле columns из значения таблицы.


11. ILinkDefinition (Изменена)

Версия 23.3:

{
  "multiplicity": "LinkDefinitionMultiplicity",
  "direction": "LinkDefinitionDirection"
}

Версия 24:

{
  "direction": "LinkDefinitionDirection"
}

Изменение: Удалено поле multiplicity из определения связи.


12. ILinkScopeTreeNode (Изменена)

Версия 23.3:

{
  "direction": "LinkDefinitionDirection"
}

Версия 24:

{
  "direction": "LinkDefinitionDirection",
  "thisEndName": "string",
  "otherEndName": "string"
}

Изменение: Добавлены имена концов связи.


13. IRestrictedListGroupPropertyOwnerItem (Изменена)

Версия 23.3:

{
  "restrictedList": "INamedObject",
  "groupPropertyOwner": "INamedObject"
}

Версия 24:

{
  "restrictedList": "IIdentifiableObject",
  "groupPropertyOwner": "IIdentifiableObject"
}

Изменение: Тип изменён с INamedObject на IIdentifiableObject.


14. IGetStandardSizesRequest (Новая модель)

{
  "pageNumber": "integer",
  "pageSize": "integer",
  "assortment": "IIdentifiableObject",
  "material": "IIdentifiableObject",
  "filterString": "string",
  "filterMode": "enum",
  "onlyWithAssortments": "boolean"
}

Описание: Запрос получения типоразмеров с фильтрацией по материалу.


15. IStandardsizeDesignationTemplate (Новая модель)

{
  "properties": ["IStandardsizeTemplateProperties"]
}

Описание: Шаблон обозначения типоразмера.


16. IStandardsizeTemplateProperties (Новая модель)

{
  "objectId": "integer",
  "typeId": "enum",
  "unit": "IIdentifiableObject",
  "prefix": "string",
  "isEnabled": "boolean"
}

Описание: Свойство шаблона типоразмера с единицей измерения и префиксом.


17. IStorageSettingsResponse (Новая модель)

{
  "allowDuplicateNames": "CanDo"
}

Описание: Настройки хранилища с возможностью дублирования имён.


18. ISetStorageSettingsRequest (Новая модель)

{
  "allowDuplicateNames": "CanDoOptional"
}

Описание: Запрос установки настроек хранилища.


19. IGetAssortmentInstancesRequest (Новая модель)

{
  "material": "IIdentifiableObject",
  "standardSize": "IIdentifiableObject"
}

Описание: Запрос получения экземпляров сортамента.


20. IGetAssortmentRequest (Новая модель)

{
  "material": "IIdentifiableObject",
  "filterString": "string"
}

Описание: Запрос получения сортаментов по материалу.


21. IGetMaterialRequest (Новая модель)

{
  "assortment": "IIdentifiableObject",
  "filterString": "string"
}

Описание: Запрос получения материалов по сортаменту.


22. ILinkMaterialsRequest (Новая модель)

{
  "assortment": "IIdentifiableObject",
  "materials": ["IIdentifiableObject"],
  "standardSpecificationsDocument": "IIdentifiableObject"
}

Описание: Запрос связи материалов и сортаментов.


23. ILinkAssortmentsRequest (Новая модель)

{
  "material": "IIdentifiableObject",
  "assortments": ["IIdentifiableObject"],
  "standardSpecificationsDocument": "IIdentifiableObject"
}

Описание: Запрос связи материала и сортаментов.


24. ICreateMaterial (Новая модель)

{
  "assortment": "IIdentifiableObject",
  "materialGroup": "IIdentifiableObject",
  "materialDocument": "IIdentifiableObject",
  "standardSpecificationsDocument": "IIdentifiableObject",
  "addedOwnConcepts": ["IIdentifiableObject"],
  "properties": ["IPropertyValueItem"],
  "propertyValues": "IAblePropertyValuesRequest"
}

Описание: Запрос создания материала.


25. ICreateStandardsizeRequest (Новая модель)

{
  "assortment": "IIdentifiableObject",
  "standartsizeValue": "ICreateElementWithValuesRequest"
}

Описание: Запрос создания типоразмера.


26. ICreateStandardsizeTemplateRequest (Новая модель)

{
  "assortment": "IIdentifiableObject",
  "standardsizeDesignationTemplate": ["IStandardsizeTemplateProperties"],
  "removeLeadingPrefix": "boolean"
}

Описание: Запрос создания шаблона типоразмера.


27. IUpdateStandardSizeTemplateRequest (Новая модель)

{
  "assortment": "IIdentifiableObject",
  "standardsizeDesignationTemplate": ["IStandardsizeTemplateProperties"],
  "removeLeadingPrefix": "boolean"
}

Описание: Запрос обновления шаблона типоразмера.


28. IGetLinkedElementsLocationsRequest (Изменена)

Версия 23.3: Отсутствует Версия 24:

{
  "elementLocation": "string",
  "linkDefCode": "string"
}

Описание: Запрос получения расположений связанных элементов.


29. IIdentifiableObject (Без изменений)

{
  "objectId": "integer",
  "typeId": "enum"
}

Описание: Базовый идентифицируемый объект.


30. IdentifiableObjectType (Расширен)

Добавлены новые типы объектов:

  • Типы для работы с сортаментами и материалами
  • Типы для ограничительных перечней
  • Типы для настроек хранилища

🔄 Удалённые Endpoints (Версия 23.3 → 24)

Endpoint Метод Причина удаления
/api/v1/common/get-storage-settings POST Перемещён в /api/v1/storage/get-storage-settings
/api/v1/common/set-storage-settings POST Перемещён в /api/v1/storage/set-storage-settings
/api/v1/common/update-class-id POST Перемещён в /api/v1/classification-object/update-class-id
/api/v1/element/get-assortment-instances POST Перемещён в /api/v1/assortment-instances/get
/api/v1/element/get-assortments POST Перемещён в /api/v1/assortments/get-by-material
/api/v1/element/get-materials POST Перемещён в /api/v1/materials/get-by-assortment
/api/v1/element/get-standard-sizes POST Перемещён в /api/v1/standard-sizes/get-by-assortment
/api/v1/favorites/get-by-id POST Восстановлен в версии 24
/api/v1/favorites-catalog/get-by-id POST Восстановлен в версии 24
/api/v1/login/current-storage-info GET Восстановлен в версии 24
/api/v1/property-owner/get-by-id POST Восстановлен в версии 24
/api/v1/search/get-compability-elements POST Восстановлен в версии 24
/api/v1/viewpoint-catalog/get-by-id POST Восстановлен в версии 24

📝 Изменения в описаниях методов

Document.Update

Версия 23.3: "Создаёт новый документ" Версия 24: "Обновляет документ"

Element.Update

Версия 23.3: "Создаёт новый документ" Версия 24: "Редактирует элемент"

Viewpoint.Update

Версия 23.3: "Создаёт новый документ" Версия 24: "Обновляет представление"

PropertyOwner.SetPropertyValues

Версия 23.3: "Устанавливает значения свойств владельца свойств" Версия 24: "Устанавливает значения свойств владельца свойств (свойства не связанные и не вычисляемые по формуле)"


🔐 Изменения в безопасности

Security Definitions

Без изменений - используется JWT авторизация с схемой Bearer.


📈 Статистика изменений

Категория Количество
Новых endpoints 48
Удалённых endpoints 13 (перемещены)
Новых моделей данных 27
Изменённых моделей данных 10
Изменённых описаний методов 4

⚠️ Breaking Changes

  1. Перемещение endpoints: Некоторые endpoints перемещены из модуля Common и Element в специализированные модули
  2. Изменение ISetPropertyValuesRequest: Удалены поля для массового удаления
  3. Изменение ITableValue: Удалено поле columns
  4. Изменение ILinkDefinition: Удалено поле multiplicity

✅ Рекомендации по миграции

  1. Обновите URL endpoints согласно новой структуре
  2. Пересмотрите использование ISetPropertyValuesRequest - удалите поля удаления
  3. Обновите работу с таблицами - поле columns больше не возвращается в ITableValue
  4. Используйте новые endpoints для работы с сортаментами и материалами
  5. Обновите обработку ошибок для новых типов объектов в IdentifiableObjectType