Описание 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}
Передача файлов вложени
Описание полей таблицы 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 файлов.
Сущность проблемы - таблица problems:
Получение всех проблем
GET /api/problems/
Возвращает массив объектов Problem
Получение одной проблемы
GET /api/problems/{id}
Возвращает объект Problem по id
Создание новой проблемы
POST /api/problems/
Для создания проблемы необходимо передать объект Problem
Редактирование проблемы
PUT /api/problems/{id}
Для редактирования проблемы по id, необходимо передать объект Problem
Удаление проблемы
DELETE /api/problems/{id}
Удаляет проблемы по id
Описание полей таблицы problems доступных через API:
Обозначение
Тип данных
Описание
Пример
id
int(10)
Идентификатор проблемы
1
date
string(50)
Дата возникновения проблемы
06.01.2015 13:59
enddate
string(50)
Дата решения проблемы
07.01.2015 10:05
manager
string(50)
Исполнитель
Васин В.В.
category
string(50)
Категория проблемы
Новые проблемы
status
string(70)
Статус проблемы
Зарегистрирована
slabel
string(500)
Статус проблемы оформленный 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>
incidents
string(200)
workaround
text
decision
text
knowledge
int(10)
knowledge_trigger
int(1)
description
text
Описание проблемы
Проблема с почтовым сервером
service
string(50)
Название сервиса
Электронная почта
priority
string(50)
Приоритет
Низкий
downtime
string(50)
Время простоя сервиса
00:10
influence
string(50)
Влияние на сервис
Частичная неработоспособность
assets
string(50)
Связанная конфигурационная единица
Рабочее место Кузнецова
assets_names
string(200)
Связанная конфигурационная единица
Рабочее место Кузнецова
users
string(200)
Пользователь
Кузнецов А.С.
image
string(200)
Вложение
01.04.2016-30.04.2016.xls
creator
string(100)
Создатель заявки
Администратор
timestamp
datetime
Время создания заявки
2015-01-06 13:59:52
Сущность пользователь - таблица 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:
Обозначение
Тип данных
Описание
Пример
id
int(10)
Идентификатор пользователя
1
Username
string(50)
Логин пользователя
admin
fullname
string(50)
Полное ФИО пользователя
Администратор
string(50)
Электронная почта
admin@email.com
Phone
string(50)
Телефон
+79003113133
push_id
string(50)
intphone
string(50)
Внутренний номер
2222
role
string(50)
Системная роль пользователя
vsdeskadmin
role_name
string(50)
Название системной роли
Администратор
company
string(50)
Компания
Users Company
room
string(50)
Кабинет
23
department
string(100)
Отдел
ИТ отдел
umanager
string(100)
birth
string(50)
День рождения
position
string(50)
sendmail
int(1)
Флаг email уведомлений
1
sendsms
int(1)
Флаг sms уведомлений
0
lang
string(50)
Язык интерфейса
ru
Сущность актива - таблица 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)
