Rest API
Служит для взаимодействия с сайтом. Доступны методы: регистрация пользователя, добавление и выборка записей.
Где и как можно использовать API:
- Есть необходимость при регистрации клиента на вашем сайте, также создавать для него учетную запись в системе.
- У вас на сайте есть оформление заказа и вам нужно, чтобы часть данных попадала в Prosto System 24/7 для отчетности.
- Вы хотите отобразить у себя на сайте часть публичных данных из какого-либо отчета.
- Интеграция со сторонними сервисами. К примеру, у вас в Prosto System 24/7 есть база адресов, и вы хотите показать их на карте в своем формате. С помощью API можно выбрать данные из базы и отобразить с помощью стороннего сервиса. Это можно делать в реальном времени.
Чтобы начать использовать API, вам необходимо разрешить доступ к API и сгенерировать ключ. Это можно сделать на странице: Дополнение — Инструменты — API.
Обратите внимание, приведенные ниже примеры не предназначены для применения на вашем приложении. Каждое приложение, созданное в системе Prosto System 24/7, имеет свои уникальные идентификаторы полей и сущностей, которые необходимо использовать в API коде.
Добавление одной или нескольких записей (insert)
<?php
$items = array();
$items[] = array(
'field_338' => 'Заявка Тест', //338 - ID текстового поля
'field_426' => '2017-12-29', //426 - ID поля типа "Дата с календарем"
'field_429' => '166,167', //429 - ID поля типа "Выпадающий список с выбором нескольких значений"
);
$params = array(
'key' => 'XgDXFsTbNRkMpRq81bBrmRAf56i5oS0oN9bp4jLH', //API ключ
'username' => 'admin', //Имя пользователя
'password' => 'admin', //Пароль
'action' => 'insert', //действие
'entity_id' => 34, //ID сущности, в которую будет добавлена запись
'items' => $items, //массив записей
);
$ch = curl_init('http://localhost/prostosystem/api/rest.php'); //API Url
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch);
if($result)
{
$result = json_decode($result,true);
print_r($result);
}
Array
(
[status] => success
[data] => Array
(
[id] => 119
)
)
Array
(
[status] => error
[error_code] =>
[error_message] => field_429 not exist in entity 34
)
| Поле | Описание |
|---|---|
| key | API ключ. Сгенерировать на странице: Дополнение — Инструменты — API. |
| username | Имя пользователя, у которого есть права на выполнение действия. |
| password | Пароль пользователя. |
| action | Действие, которое необходимо выполнить. |
| entity_id | ID сущности, для которой выполняется действие. |
| items | Массив записей, включающий в себя поля записи. |
| parent_item_id — необязательное поле, необходимо в том случае, если запись добавляется в родительскую запись. | |
| field_X — поле, которое необходимо добавить, где X — это ID поля. ID полей можно узнать на странице «Конфигурация полей». Данное поле принимает значение в виде строки.
Для типа поля «дата» используйте формат YYYY-MM-DD. Для типа поля «Выпадающий список» используйте ID опции, которое можно узнать на странице «Опции» для каждого поля. В случае использования глобального списка, используйте ID опции из глобального списка. Если список с выбором нескольких значений, укажите их через запятую. |
Регистрация нового пользователя (insert)
Работает аналогично добавлению новой записи и имеет обязательные поля для регистрации пользователя.
<?php
$items = array();
$items[] = array(
'group_id' => 4, //4 - ID группы пользователя
'firstname' => 'Виктор',
'lastname' => 'Павлов',
'username' => 'admin',
'email' => 'support@prostosystem.com',
'password' => '', //Если не указан, будет сгенерирован автоматически.
);
$params = array(
'key' => 'XgDXFsTbNRkMpRq81bBrmRAf56i5oS0oN9bp4jLH',
'username' => 'manager',
'password' => 'manager',
'action' => 'insert',
'entity_id' => 1,
'notify' =>true, //Будет отправлено уведомление пользователю.
'login_url' => 'http://localhost/prostosystem/index.php',
'items' => $items,
);
$ch = curl_init('http://localhost/prostosystem/api/rest.php');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch);
if($result)
{
$result = json_decode($result,true);
print_r($result);
}
| Поле | Описание | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| entity_id | Необходимо указать 1 | ||||||||||||||
| notify | Для отправки уведомления на почту пользователя (true/false) | ||||||||||||||
| login_url | Ссылка для входа, добавляется в уведомление пользователя. | ||||||||||||||
| items | Массив записей, включающий в себя поля записи. | ||||||||||||||
field_X — поле, которое необходимо добавить, где X — это ID поля. ID полей можно узнать на странице «Конфигурация полей». Данное поле принимает значение в виде строки.
|
Выборка записей (select)
<?php
$params = array(
'key' => 'XgDXFsTbNRkMpRq81bBrmRAf56i5oS0oN9bp4jLH',
'username' => 'admin',
'password' => 'admin',
'action' => 'select',
'entity_id' => 34, //ID сущности, из которой будут выбираться записи
'limit' => 0, //Если не указан, выбираются все строки
'select_fields' => '338,388', //ID полей, значения которых будут выбираться
'reports_id' => 370, //ID отчета, фильтры которого будут применяться к выборке
);
$ch = curl_init('http://localhost/prostosystem/api/rest.php');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch);
if($result)
{
$result = json_decode($result,true);
print_r($result);
}
| Поле | Описание |
|---|---|
| entity_id | ID сущности, из которой будут выбираться записи |
| limit | Если не указан, выбираются все строки |
| select_fields | ID полей, значения которых будут выбираться. Укажите ID через запятую. Если не указано, выбираются значения из всех полей. |
| reports_id | ID отчета, фильтры и сортировка которого будут применяться к выборке. Если не указано, выбираются все записи. |
При успешном выполнении, возвращает массив записей:
Array
(
[status] => success
[data] => Array
(
[0] => Array
(
[id] => 112
[date_added] => 01/15/2018 10:42
[created_by] => Pavlov Viktor
[338] => Заявка 6
[388] => Новая
)
[1] => Array
(
[id] => 111
[date_added] => 01/15/2018 10:42
[created_by] => Pavlov Viktor
[338] => Заявка 5
[388] => Новая
)
[2] => Array
(
[id] => 110
[date_added] => 01/15/2018 10:41
[created_by] => Pavlov Viktor
[338] => Заявка 4
[388] => Новая
)
)
)
Хотите прокомментировать?
You must be logged in to post a comment.