Описание API
Пример создания заявки через API из CURL на PHP
$host= 'http://localhost/api/requests/'; //запрос для каждой модели свой
$username = 'admin';
$password = 'admin';
$postFields = http_build_query(['service_id' => 3, 'CUsers_id' => 'admin', 'Status' => 'Открыта',
'ZayavCategory_id' => 'Заявка на обслуживание', 'Priority' => 'Низкий',
'Name' => 'Название', 'Content' => 'текст заявки']); //передается urlencoded POST-массив
$process = curl_init($host);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$postFields = curl_exec($process);
curl_close($process);Для авторизации необходимо передать логин и пароль пользователя через BASIC авторизацию. Роль пользователя должна иметь права на основные действия через API.
Сущность заявки - таблица request:
Получение всех заявок
GET /api/requests/
Возвращает массив объектов Request
Получение заявок с выборкой
GET /api/requests/?Managers_id=manager (выборка заявок с определенным исполнителем, указывается логин);
GET /api/requests/?timestamp=2016-06-17 (выборка за определенную дату);
GET /api/requests/?timestamp=2016-06-17 10:00 (выборка за определенную дату и время);
GET /api/requests/?timestamp=>2016-06-17 10:00 (выборка за дату и время большую чем указана);
GET /api/requests/?service_id=3 (выборка по определенному сервису, id сервиса можно посмотреть в БД);
Возвращает массив объектов Request отфильтрованных по условию, поддерживаются значения = (равно), =<> (неравно), =< (меньше), => (больше).
Получение одной заявки
GET /api/requests/{id}
Возвращает объект Request по id
Создание новой заявки
POST /api/requests/
Для создания заявки необходимо передать объект Request. Минимальный набор полей для создания заявки:
service_id, Name, Content, Status, CUsers_id, Zayavcategory_id, Priority.
Редактирование заявки
PUT /api/requests/{id}
Для редактирования заявки по id, необходимо передать объект Request в JSON формате
Пример: {"Name":"TEST22","Content":"TEST55"}
Удаление заявки
DELETE /api/requests/{id}
Удаляет заявку по id
Получение записей истории заявки
GET /api/history/?zid={id}
Передача файлов вложени
Для передачи файлов, их необходимо предварительно загрузить и после передать в массиве files перечисление id файлов.
Описание полей таблицы request доступных через API:
Обозначение | Тип данных (длина) | Описание | Пример значения |
id | int(10) | Идентификатор заявки (автоинкрементное поле) | 2 |
pid | int(10) | Идентификатор родительской заявки | 1 |
Name | varchar (100) | Тема обращения | Тестовая заявка |
ZayavCategory_id | varchar (50) | Категория заявки | Заявка на обслуживание |
Date | varchar (50) | Дата создания заявки (отображаемая) | 07.05.2016 11:17 |
StartTime | varchar (50) | Планируемая дата начала исполнения (отображаемая) | 09.05.2016 09:30 |
fStartTime | varchar (50) | Фактическая дата начала исполнения (отображаемая) | 09.05.2016 09:27 |
EndTime | varchar (50) | Планируемая дата выполнения (отображаемая) | 09.05.2016 10:30 |
fEndTime | varchar(50) | Фактическая дата выполнения (отображаемая) | 09.05.2016 10:25 |
Status | varchar (100) | Статус заявки | Просрочено исполнение |
slabel | varchar(400) | Статус заявки оформленный html тегами | Пример лэйбла можно посмотреть в БД |
Priority | varchar (50) | Приоритет заявки | Низкий |
Managers_id | varchar (50) | Логин исполнителя | manager |
CUsers_id | varchar (50) | Логин пользователя | user |
phone | varchar (50) | Телефон пользователя | +79003113133 |
room | varchar (50 | Комната | 233 |
Address | varchar (50) | Адрес пользователя | Москва, ул. Пупырина, д.6 |
company | varchar (50) | Компания пользователя | Компания А |
Content | text | Содержимое заявки (HTML или Текст) | <p>Сломался принтер</p> |
cunits | varchar (500) | Перечисление ID связанных конфигурационных единиц (через запятую) | 1, 2, 5 |
closed | varchar (50) | Метка состояния заявки | 1 - этот параметр означает новую заявку; 2 - этот параметр означает, что заявка принята в исполнение; 3 - этот параметр означает закрытие заявки, дальше его не будет обрабатывать CRON и сверять дедлайны; 8 - этот параметр означает, что заявка отложена; 10 - заявка в архиве; |
service_id | int(10) | ID сервиса(находим в БД) | 3 |
service_name | varchar (50) | Сервис заявки | Обслуживание внутренних клиентов |
timestamp | datetime | Дата создания заявки | 2016-06-17 10:46:41 |
timestampStart | datetime | Планируемая дата начала работ | 2016-06-17 12:16:00 |
timestampfStart | datetime | Фактическая дата начала работ | 2016-06-17 12:12:11 |
timestampEnd | datetime | Планируемая дата завершения работ | 2016-06-17 01:16:00 |
timestampfEnd | datetime | Фактическая дата завершения работ | 2016-06-17 01:13:27 |
fullname | varchar (100) | Имя заказчика в заявке | Администратор |
mfullname | varchar (100) | Имя исполнителя в заявке | Васин В.В. |
gfullname | varchar (100) | Группа исполнителя | Первая линия поддержки |
creator | varchar (100) | Имя создателя заявки | Администратор |
watchers | varchar (2000) | Наблюдатели (полные имена пользователей через запятую) | Администратор,Волобуев Антон |
rating | int(1) | Оценка заявки | 5 |
lead_time | time | Время выполнения заявки | 00:53:33 |
subs | array | Массив с комментариями заявок | [...] |
files | array | Массив с вложениями заявок | [...] |
flds | array | Массив с дополнительными полями | [...] |
Сущность комментарии к заявке:
Получение списка комментариев к заявке осуществляется через запрос к заявке по id
GET /api/requests/{id}
Список комментариев отдеается в массиве subs
Создание нового комментария к заявке
POST /api/comments/
Описание полей таблицы comments доступных через API:
Обозначение | Тип данных (длина) | Описание | Пример значения |
id | int (10) | Идентификатор комментария | 10 |
rid | int (10) | ID заявки к которой добавляется комментарий | 22 |
timestamp | varchar (100) | Дата добавления | 14.08.2018 09:49:46 |
author | varchar (100) | Автор комментария | Администратор |
comment | text | Текст комментария (HTML или текст) | <p>Ваш комментарий в HTML формате</p> |
show | int (1) | Отображать комментарий заказчику или нет | 1 (не отображать) или 0 (отображать) |
channel | varchar (100) | Канал получения комментария | email, manual, widget, telegram, viber, portal |
Сущность вложения (файла) к заявке:
Создание нового вложения к заявке
POST /api/files/
Для создания заявки необходимо передать объект типа file
Возвращает объект file, в котором ID файла и URL файла.
При создании заявки можно передать массив загруженных ранее файлов files[]={id1,id2} с перечислением ID файлов.
Сущность пользователь - таблица CUsers:
Получение списка пользователей
GET /api/users/
Возвращает массив объектов User
Получение одной пользователя
GET /api/users/{id}
Возвращает объект User по id
Создание нового пользователя
POST /api/users/
Для создания пользователя необходимо передать объект User
Редактирование пользователя
PUT /api/users/{id}
Для редактирования пользователя по id, необходимо передать объект User
Удаление пользователя
DELETE /api/users/{id}
Удаляет пользователя по id
Описание полей таблицы CUsers доступных через API:
Обозначение | Тип данных (длина) | Описание | Пример |
| int( |
| 1 - активен 0 - заблокирован |
Username |
| Логин пользователя | admin |
fullname |
| Полное | Администратор |
Password | varchar(100) | Пароль пользователя | передается строка, хранится md5 хэш |
|
| admin@email.com | |
Phone |
| Телефон пользователя | + |
|
| Внутренний телефон по |
|
|
| Мобильный телефон пользователя | +79029992255 |
role | varchar(50) | Системная роль пользователя | vsdeskadmin |
role_name |
|
| Администратор |
company_id | int(11) | ID компании из справочника Компании | 3 |
company |
| Название компании из справочника Компании | Компания А |
|
| Комна |
|
department |
|
| ИТ отдел |
umanager |
|
|
|
|
| Д | Системный ад |
| int(1) | Флаг | 1 - отправлять
|
sendsms | int(1) | Флаг | 1 - отправлять 0 - не отправлять |
lang |
| Язык системы | ru - Русский en - Английский |
city | varchar(50) | Город пользователя | Москва |
tbot | varchar(50) | ID чата Telegram | 42938545783 |
vbot | varchar(50) | ID чата Viber | 42938545784 |
msbot | varchar(50) | ID чата Microsoft Azure Bot Framework | 42938545785 |
wbot | varchar(50) | ID чата WhatsApp | 42938545786 |
send_wbot | int(1) | Флаг отправки уведомлений через WhatsApp | 1 - отправлять 0 - не отправлять |
send_tbot | int(1) | Флаг отправки уведомлений через Telegram | 1 - отправлять 0 - не отправлять |
send_vbot | int(1) | Флаг отправки уведомлений через Viber | 1 - отправлять 0 - не отправлять |
fontSize | int(2) | Размер шрифта в интерфейс |
|
Сущность актива - таблица assets:
Получение всех активов
GET /api/assets/
Возвращает массив объектовAsset
Получение одного актива
GET /api/assets/{id}
Возвращает объект Asset по id
Создание нового актива
POST /api/assets/
Для создания актива необходимо передать объектAsset
Редактирование актива
PUT /api/assets/{id}
Для редактирования актива по id, необходимо передать объект Asset
Удаление актива
DELETE /api/assets/{id}
Удаляет актив по id
Описание полей таблицы assets доступных через API:
Обозначение
Тип данных
Описание
Пример
id
int(10)
Идентификатор актива
1
uid
int(10)
1
date
string(50)
Дата заведения
27.12.2014 14:03
name
string(50)
Наименование актива
ПК Кузнецова
location
string(50)
inventory
string(50)
PC-125987
status
string(50)
Статус
Используется
slabel
string(400)
Статус проблемы оформленный html тегами
<span style="display: inline-block; padding: 2px 4px; font-size: 11.844px; font-weight: bold; line-height: 14px; color: #ffffff; vertical-align: baseline; white-space: nowrap; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; background-color: #6ac28e">Используется</span>
cost
string(50)
Стоимость
22500
asset_attrib_id
int(10)
Тип актива
6
asset_attrib_name
string(50)
Название типа актива
Системный блок
cusers_id
int(10)
cusers_name
string(50)
Владелец актива
user
cusers_fullname
string(50)
Полное имя владельца
Кузнецов А.С.
cusers_dept
string(50)
Отдел
Отдел продаж
items
массив объектов
Характеристики актива
Сущность КЕ - таблица cunits:
Получение всех КЕ
GET /api/cunits/
Возвращает массив объектов Cunit
Получение одной КЕ
GET /api/cunits/{id}
Возвращает объект Cunit по id
СозданиеновойКЕ
POST /api/cunits/
Для создания КЕ необходимо передать объект Cunit
Редактирование КЕ
PUT /api/cunits/{id}
Для редактирования КЕ по id, необходимо передать объект Cunit
УдалениеКЕ
DELETE /api/cunits/{id}
Удаляет КЕ по id
Описание полей таблицы cunits доступных через API:
Обозначение
Тип данных
Описание
Пример
id
int(10)
Идентификатор КЕ
1
name
string(10)
Наименование
ПК Кузнецова
type
string(50)
Тип
Рабочая станция
status
string(50)
Статус
Используется
slabel
string(400)
Статус оформленный htmlтегами
<span style="display: inline-block; padding: 2px 4px; font-size: 11.844px; font-weight: bold; line-height: 14px; color: #ffffff; vertical-align: baseline; white-space: nowrap; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; background-color: #6ac28e">Используется</span>
cost
string(50)
Стоимость
39800
user
string(50)
Пользователь
user
fullname
string(70)
Пользователь ФИО
Кузнецов А.С.
dept
string(100)
Отдел
Отдел продаж
inventory
string(50)
Инвентарный №
WS-156798
date
string(50)
Дата заведения
27.12.2014 14:05
datein
string(50)
Дата ввода в эксплуатацию
27.12.2014
dateout
string(50)
Дата вывода из эксплуатации
company
string(70)
Компания
Users Company
assets
string(2000)
Активы
3,4,5,1,2
location
string(100)
