Описание изменений 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
- Перемещение endpoints: Некоторые endpoints перемещены из модуля
CommonиElementв специализированные модули - Изменение ISetPropertyValuesRequest: Удалены поля для массового удаления
- Изменение ITableValue: Удалено поле columns
- Изменение ILinkDefinition: Удалено поле multiplicity
✅ Рекомендации по миграции
- Обновите URL endpoints согласно новой структуре
- Пересмотрите использование
ISetPropertyValuesRequest- удалите поля удаления - Обновите работу с таблицами - поле columns больше не возвращается в
ITableValue - Используйте новые endpoints для работы с сортаментами и материалами
- Обновите обработку ошибок для новых типов объектов в
IdentifiableObjectType