rest_api
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| rest_api [2021/09/22 09:15] – apeks | rest_api [2022/10/11 09:35] (текущий) – удалено apeks | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | В системе пользователям предоставляется возможность не только пользоваться имеющимися возможностями, | ||
| - | |||
| - | И конечно содержимое его должно быть именно скриптом. Ниже следует описание работы с ними. | ||
| - | |||
| - | |||
| - | **Пользовательский скрипт** | ||
| - | Пользовательский скрипт должен быть реализован в виде процедуры с именем “userfunc”, | ||
| - | function userfunc(reqData) | ||
| - | { | ||
| - | alert(JSON.stringify(reqData)); | ||
| - | } | ||
| - | |||
| - | Данный пользовательский скрипт выведет в браузере сообщение, | ||
| - | |||
| - | {" | ||
| - | |||
| - | Объект “reqData” предназначен для предоставления пользовательскому скрипту информации о объекте или объектах, | ||
| - | |||
| - | Все необходимые проверки на соответствие/ | ||
| - | |||
| - | ** | ||
| - | Запрос серверу** | ||
| - | Запрос серверу можно осуществить посредством функции “apiDoRequest”. Функция имеет один входной параметр “reqData”, | ||
| - | Запрос на чтение данных объекта системы: | ||
| - | Для того, чтобы запросить у системы поля одного из объектов, | ||
| - | {" | ||
| - | Массив “reqArr” может содержать неограниченное количество объектов системы разного типа, для которых необходимо осуществить выдачу информации. Пример запроса для нескольких объектов системы указан ниже. | ||
| - | {" | ||
| - | Поле “error” в отправляемых данных не играет роли и требует обработки лишь при получении ответа от сервера (сервер отвечает в этом же формате, | ||
| - | {" | ||
| - | Процедура пользовательского скрипта, | ||
| - | function userfunc(reqData) | ||
| - | { | ||
| - | reqData.event = " | ||
| - | alert(JSON.stringify(apiDoRequest(reqData))); | ||
| - | } | ||
| - | |||
| - | Запрос на чтение данных объекта системы может быть выполнен для следующих типов объектов системы: | ||
| - | |||
| - | * Номенклатурная позиция – значение поля “type”: | ||
| - | * Коллекция – значение поля “type”: | ||
| - | * Файл – значение поля “type”: | ||
| - | * Параметр – значение поля “type”: | ||
| - | * Компонент – значение поля “type”: | ||
| - | |||
| - | **Индикация ошибок** | ||
| - | На случай, | ||
| - | Если запрос не был выполнен полностью (например, | ||
| - | {" | ||
| - | Значение поля “event” в сообщении такого рода сохраняется от запроса, | ||
| - | Если же запрос производился для нескольких объектов системы и для ряда из них он прошёл успешно, | ||
| - | {" | ||
| - | |||
| - | Объекты системы | ||
| - | В системе присутствуют следующие типы объектов: | ||
| - | · * Номенклатурная позиция; | ||
| - | * · Коллекция; | ||
| - | * · Файл; | ||
| - | * · Параметр; | ||
| - | * · Компонент. | ||
| - | Помимо объектов системы существует система зависимостей, | ||
| - | · * Компонент*; | ||
| - | * · Связанный параметр; | ||
| - | * · Связанная коллекция; | ||
| - | * · Связанная номенклатура; | ||
| - | * · Связанная зависимость; | ||
| - | * · Связанная ссылка. | ||
| - | * Данный тип зависимости также является объектом системы, | ||
| - | |||
| - | **Чтение объекта системы** | ||
| - | Параметр «event» запроса установлен в значение «get_data». | ||
| - | Чтение объектов системы может осуществляться по idобъекта и по обозначению объекта в системе. Чтение по обозначению доступно для номенклатуры, | ||
| - | Далее приведён запрос на чтение номенклатурной позиции по обозначению. | ||
| - | {" | ||
| - | Сервер возвращает объекты системы в формате JSONстроки со следующей структурой полей: | ||
| - | Номенклатурная позиция: | ||
| - | · * id– уникальный идентификатор позиции среди объектов своего типа; | ||
| - | * · type– тип объекта (“nomenclature”); | ||
| - | * · name– обозначение позиции (используется вместо «id»); | ||
| - | * · notation– наименование позиции; | ||
| - | * · created_date – дата и время создания позиции; | ||
| - | * · change_date – дата и время изменения позиции; | ||
| - | Коллекция: | ||
| - | · * id– уникальный идентификатор позиции среди объектов своего типа; | ||
| - | * · type– тип объекта (“collection”); | ||
| - | * · name– обозначение позиции; | ||
| - | * · notation– наименование позиции; | ||
| - | * · link_type – тип связи позиции; | ||
| - | * · status – статус позиции; | ||
| - | * · start_date – дата начала (формат строки: | ||
| - | * · start_time – время начала (формат строки: | ||
| - | * · end_date – дата окончания (формат строки: | ||
| - | * · end_time – время окончания (формат строки: | ||
| - | * · created_date – дата и время создания позиции; | ||
| - | * · change_date – дата и время изменения позиции; | ||
| - | Файл: | ||
| - | · * id– уникальный идентификатор позиции среди объектов своего типа; | ||
| - | * · type– тип объекта (“file”); | ||
| - | * · name– имя файла; | ||
| - | * · file_type– расширение файла; | ||
| - | * · link_type – тип связи позиции; | ||
| - | * · comment– тип связи позиции; | ||
| - | * · size– размер файла в байтах; | ||
| - | * · created_date – дата и время создания позиции; | ||
| - | * · change_date – дата и время изменения позиции; | ||
| - | Параметр: | ||
| - | · * id– уникальный идентификатор позиции среди объектов своего типа; | ||
| - | * · type– тип объекта (“parameter”); | ||
| - | * · name– обозначение позиции; | ||
| - | * · notation– наименование позиции; | ||
| - | * · parameter_type – тип параметра; | ||
| - | * · created_date – дата и время создания позиции; | ||
| - | * · change_date – дата и время изменения позиции; | ||
| - | Компонент: | ||
| - | · * id– уникальный идентификатор позиции среди объектов своего типа; | ||
| - | * · type– тип объекта (“component”); | ||
| - | * · nomenclature_id – идентификатор номенклатурной позиции, | ||
| - | * · parent_obj_id – идентификатор коллекции в которой содержится данный компонент; | ||
| - | * · parent_id – идентификатор родительского объекта типа «компонент» в дереве компонентов; | ||
| - | * · link_type – тип связи позиции; | ||
| - | * · status – статус позиции; | ||
| - | * · amount – количество; | ||
| - | * · unit – единица измерения; | ||
| - | * · comment – комментарий; | ||
| - | * · price – цена; | ||
| - | * · start_date – дата начала (формат строки: | ||
| - | * · start_time – время начала (формат строки: | ||
| - | * · end_date – дата окончания (формат строки: | ||
| - | * · end_time – время окончания (формат строки: | ||
| - | * · created_date – дата и время создания позиции; | ||
| - | * · change_date – дата и время изменения позиции; | ||
| - | · | ||
| - | **Чтение содержимого блоков объекта** | ||
| - | Параметр «event» запроса установлен в значение «get_obj_blocks». | ||
| - | Сервер возвращает содержимое блоков объекта системы в формате JSONстроки. | ||
| - | Тело запроса для объекта состоит из двух полей | ||
| - | * type– тип объекта; | ||
| - | * · id – id объекта; | ||
| - | Далее приведён запрос на чтение всех блоков коллекции. | ||
| - | {" | ||
| - | Далее приведён ответ сервера на на чтение всех блоков коллекции. | ||
| - | {" | ||
| - | |||
| - | **Чтение содержимого блока компонентов коллекции с учётом фильтрации** | ||
| - | Параметр «event» запроса установлен в значение «get_components_filter». | ||
| - | Сервер возвращает содержимое блока компонентов коллекции с учётом фильтрации в формате JSONстроки в формате аналогичном запросу «get_obj_blocks». | ||
| - | Для осуществления фильтрации могут быть использованы следующие параметры: | ||
| - | · * Номенклатура, | ||
| - | * · Единица измерения компонента; | ||
| - | * · Массив прикреплённых к компоненту параметров и соответствующие им значения; | ||
| - | Тело запроса для объекта состоит из двух полей | ||
| - | · * type– тип объекта (должен быть установлен в «collection»); | ||
| - | * · id – id коллекции; | ||
| - | * · name– обозначение коллекции (используется вместо «id»); | ||
| - | * · nomenclature_id– idноменклатуры, | ||
| - | * · nomenclature_name – обозначение номенклатуры, | ||
| - | · * unit_id – idединицы измерения для отбора компонентов; | ||
| - | * · unit_name – обозначение единицы измерения для отбора компонентов (используется вместо «unit_id»); | ||
| - | * · params– массив параметров и их значений, | ||
| - | Далее приведён запрос на чтение компонентов коллекции с учётом следующих фильтров: | ||
| - | · * Родительская коллекция с обозначением «Тестовая коллекция»; | ||
| - | * · Номенклатура, | ||
| - | * · Единица измерения компонента «кг»; | ||
| - | * · Компонента должна иметь два прикреплённых параметра «Тестовый параметр 1» и «Тестовый параметр 2» со значениями «123» и «456» соответственно; | ||
| - | {" | ||
| - | |||
| - | **Редактирование объекта системы** | ||
| - | Параметр «event» запроса установлен в значение «edit_data». | ||
| - | Сервер осуществляет редактирование выбранного объекта системы | ||
| - | Тело запроса для объекта состоит из трёх и более полей (в зависимости от количество реквизитов объекта, | ||
| - | · * type– тип объекта; | ||
| - | * · id – id объекта; | ||
| - | * · name– обозначение объекта (используется вместо «id»); | ||
| - | * · < | ||
| - | * · < | ||
| - | * · < | ||
| - | Далее приведён запрос для редактирования поля количества у компонента с idравным «256486», количество для этого компонента будет установлено в «123». | ||
| - | {" | ||
| - | |||
| - | **Удаление объекта системы** | ||
| - | Параметр «event» запроса установлен в значение «delete_data». | ||
| - | Сервер осуществляет удаление выбранного объекта системы | ||
| - | Тело запроса для объекта состоит из двух полей: | ||
| - | · * type– тип объекта; | ||
| - | * · id – id объекта; | ||
| - | * · name– обозначение объекта (используется вместо «id»); | ||
| - | Далее приведён запрос для удаления номенклатурной позиции с idравным «21». | ||
| - | {" | ||
| - | |||
| - | Чтение доступных статусов | ||
| - | Параметр «event» запроса установлен в значение «get_statuses». | ||
| - | |||
| - | Чтение доступных единиц измерения | ||
| - | Параметр «event» запроса установлен в значение «get_units». | ||
| - | |||
| - | Чтение доступных типов связи | ||
| - | Параметр «event» запроса установлен в значение «get_link_types». | ||
| - | |||
| - | Запись данных | ||
| - | Параметр «event» запроса установлен в значение «new_data». | ||
| - | В ответ на запрос записи сервер отправляет JSON структуру с подтверждением, | ||
| - | Далее приведён запрос на создание номенклатурной позиции. | ||
| - | {" | ||
| - | Далее приведён ответ сервера на создание номенклатурной позиции. | ||
| - | {" | ||
| - | Для записи данных необходимо отправить данные в следующем формате: | ||
| - | Номенклатурная позиция: | ||
| - | · * name - обозначение новой позиции; | ||
| - | * · notation - наименование новой позиции; | ||
| - | * · folder_name - наименование каталога во " | ||
| - | Коллекция: | ||
| - | · * name – обозначение позиции; | ||
| - | * · notation – наименование позиции; | ||
| - | * · link_type – тип связи позиции; | ||
| - | * · status – статус позиции; | ||
| - | * · start_date – дата начала (формат строки: | ||
| - | * · start_time – время начала (формат строки: | ||
| - | * · end_date – дата окончания (формат строки: | ||
| - | * · end_time – время окончания (формат строки: | ||
| - | * · folder_name - наименование каталога во " | ||
| - | Параметр: | ||
| - | · * name - обозначение новой позиции | ||
| - | * · notation - наименование новой позиции | ||
| - | * · folder_name - наименование каталога во " | ||
| - | * · parameter_type - тип параметра. Значения " | ||
| - | Файл: | ||
| - | Запись файлов в систему посредством APIна текущий момент недоступна. | ||
| - | Компонент: | ||
| - | · * nomenclature_id – идентификатор номенклатурной позиции, | ||
| - | * · parent_obj_id – идентификатор коллекции в которой будет создан данный компонент; | ||
| - | * · parent_id – идентификатор родительского объекта типа «компонент» в дереве компонентов; | ||
| - | * · link_type – тип связи позиции; | ||
| - | * · status – статус позиции; | ||
| - | * · amount – количество; | ||
| - | * · unit – единица измерения; | ||
| - | * · comment – комментарий; | ||
| - | * · price – цена; | ||
| - | * · start_date – дата начала (формат строки: | ||
| - | * · start_time – время начала (формат строки: | ||
| - | * · end_date – дата окончания (формат строки: | ||
| - | * · end_time – время окончания (формат строки: | ||
| - | * | ||
| - | Связанный параметр: | ||
| - | · * parameter_id - id параметра в системе; | ||
| - | * · parent_obj_id - id родительского объекта (коллекции, | ||
| - | * · parent_obj_type - тип родительского объекта (nomenclature, | ||
| - | * · parent_id - id родительского прикреплённого параметра для организации иерархии. 0 - для помещения в корень; | ||
| - | * · s_value - строковое значение для строковых параметров; | ||
| - | * · d_value - числовое значение для числовых параметров; | ||
| - | Связанная коллекция: | ||
| - | · * collection_id - id коллекции в системе; | ||
| - | * · parent_obj_id - id родительского объекта (коллекции, | ||
| - | * · parent_obj_type - типродительскогообъекта (nomenclature, | ||
| - | * · assignment_link_type – назначение позиции (тип связи); | ||
| - | Связанная номенклатура: | ||
| - | · * nomenclature_id - id номенклатуры в системе; | ||
| - | * · parent_obj_id - id родительского объекта (коллекции, | ||
| - | * · parent_obj_type - типродительскогообъекта (nomenclature, | ||
| - | * · comment – комментарий; | ||
| - | * · link_type – тип связи позиции; | ||
| - | Связанная зависимость: | ||
| - | · * component_id - id компонента в системе; | ||
| - | * · parent_obj_id - id родительского объекта (коллекции, | ||
| - | * · assignment_link_type – назначение позиции (тип связи); | ||
| - | Связанная ссылка: | ||
| - | · * link – текст ссылки; | ||
| - | * · parent_obj_id - id родительского объекта (коллекции, | ||
| - | * · parent_obj_type - типродительскогообъекта (nomenclature, | ||
| - | * · comment – комментарий. | ||
| - | Коды ошибок | ||
| - | 0 – Ошибки отсутствуют; | ||
| - | 1 – Ошибка прав; | ||
| - | 2 – Ошибка получения данных; | ||
| - | 3 – Ошибка данных запроса; | ||
| - | 4 – Ошибка создания позиции; | ||
| - | 5 – Ошибка авторизации; | ||
| - | 6 – Ошибка подписки. | ||
| - | |||
rest_api.1632302132.txt.gz · Последнее изменение: 2021/09/22 09:15 — apeks
