Описание 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);

Сущность заявки - таблица 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

Редактирование заявки

PUT /api/requests/{id}

Для редактирования заявки по id, необходимо передать объект Request

Удаление заявки

DELETE /api/requests/{id}

Удаляет заявку по id

Получение записей истории заявки

GET /api/history/?zid={id}

Описание полей таблицы request доступных через API:

Обозначение

Тип данных (длина)

Описание

Пример значения

id

int(10)

Идентификатор заявки

2

pid

int(10)

Идентификатор родительской заявки

1

Name

string(100)

Наименование заявки

Тестовая заявка

ZayavCategory_id

string(50) справочник

Категория заявки

Заявка на обслуживание

Date

string(50)

Дата создания заявки

07.05.2016 11:17

StartTime

string(50)

Планируемая дата начала исполнения

09.05.2016 09:30

fStartTime

string(50)

Фактическая дата начала исполнения

09.05.2016 09:27

EndTime

string(50)

Планируемая дата выполнения

09.05.2016 10:30

fEndTime

string(50)

Фактическая дата выполнения

09.05.2016 10:25

Status

string(100)

Статус заявки

Просрочено исполнение

slabel

string(400)

Статус заявки оформленный html тегами

Пример лэйбла в БД

Priority

string (50) справочник

Приоритет заявки

Низкий

Managers_id

string (50)справочник

Логин исполнителя

manager

CUsers_id

string (50)справочник

Логин пользователя

user

phone

string (50)

Телефон пользователя

+79003113133

room

string (50)

Кабинет, где находится пользователь

233

Address

string (50)

Адрес пользователя

Москва, ул. Пупырина, д.6

company

string (50)

Компания пользователя

Users Company

Content

text

Текст заявки с управляющими тегами

<p>Сломался принтер</p>

cunits

string (500)справочник

ID связанных конфигурационных единиц

1

closed

string (50)справочник

Состояние заявки

1 - этот параметр означает новую заявку; 2 - этот параметр означает, что заявка принята в исполнение; 3 - этот параметр означает закрытие заявки, дальше его не будет обрабатывать CRON и сверять дедлайны; 9 - этот параметр означает что заявка отложена;

service_id

int(10)справочник

IDсервиса

3 (id сервиса находим в БД)

service_name

string (50)справочник

Название сервиса заявки

Обслуживание внутренних клиентов

image

string (250)

Вложение

printscreen.png

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

string (50)

Имя создателя

Администратор

mfullname

string (50)

Имя исполнителя

Васин В.В.

gfullname

Группа исполнителя

depart

Отдел

creator

Имя создателя

Администратор

watchers

Наблюдатели

admtest

rating

Оценка заявки

5

lead_time

Время выполнения заявки

00:53:33

subs

массив объектов comment

Комментарии к заявки

array()

files

массив объектов вложений

Вложения к заявке

array()

Сущность комментарии к заявке:

Создание нового комментария к заявке

POST /api/comments/

Для создания заявки необходимо передать объект Comment

Обозначение

Тип данных

Описание

Пример значения

id

int (10)

Идентификатор комментария

10

rid

int (10)

ID заявки к которой добавляется комментарий

22

timestamp

varchar (100)

Дата добавления

14.08.2018 09:49:46

author

varchar (100)

Автор комментария

Администратор

comment

text

Текст комментария

Ваш комментарий в HTML формате

show

int (1)

Отображать комментарий заказчику или нет

1 (не отображать) или 0 (отображать)

channel

varchar (100)

Канал получения комментария

email, manual, widget, telegram, viber, planned, portal

Сущность вложения (файла) к заявке:

Создание нового вложения к заявке

POST /api/files/

Для создания заявки необходимо передать объект типа file

Возвращает объект file, в котором ID файла и URL файла.

При создании заявки можно передать массив загруженных ранее файлов files[]={id} с 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)

Полное ФИО пользователя

Администратор

Email

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)