Описание работы с 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)

results matching ""

    No results matching ""