НАЧАЛО >> Сервер приложений ИРБИС 64/128 >> Описание модулей системы >> API - API ИРБИС 64/128 >> Руководство пользователя >> Функционал сервисов для интеграции приложений в виде JSON-RPC 2.0 API >> Функция Search($dbn, $exp, $seq, $format, $numMfn = 20, $firstMfn = 0, $Min = 0, $Max = 0, $SortBy = '', $AscSortDir = true, $UseCacheInSearch = false, $asJson = false)
Функция поиска изданий по сводному каталогу.
| Параметр | Тип | Описание |
|---|---|---|
| $dbn | string | Имя БД для поиска |
| $exp | string | Поисковое выражение на языке ИРБИС |
| $seq | string | Формат для последовательного поиска |
| $format | string | Формат, в котором вернуть результат поиска. Например: @ - Формат по умолчанию, @brief – краткое описание |
| $numMfn | integer | Количество записей в порции результатов |
| $firstMfn | integer | Вернуть результат записи, начиная с… |
| $Min | integer | Минимальный MFN результата. Если ==0 то не без ограничений. По умолчанию 0. |
| $Max | integer | Максимальный MFN результата. Если ==0 то не без ограничений. По умолчанию 0. |
| $SortBy | string | Ключ сортировки. Если пустая строка - то без сортировки. По умолчанию '' |
| $AscSortDir | bool | Если true, то сортировка по возрастанию. По умолчанию true. |
| $UseCacheInSearch | bool | Если true, то использовать кеш поиска. По умолчанию false |
| $asJson | bool | Если true, то результат расформатирования данных проходит через json_decode. По умолчанию false |
Массив с результатами расформатирования записей. 0-й элемент массива содержит количество найденных записей. Если количество возвращащемых записей больше 0, то 1-й и последующие элементы содержат результат расформатирования.
В общем случае в качестве результата расформатирования возвращается строка.
Если параметр $asJson установлен в true, то для каждого результата расформатирования происходит попытка преобразования в объект json. Если преобразование в json не успешно - возвращается исходная строка (результат формата).
// Подключение класса JSON-RPC 2.0 клиента
require_once('BaseJsonRpcClient.php');
// URL подключения к API сервера
$entryUrl = 'http://127.0.0.1/JSONRPC.php?i128Module=API';
// Использовать ли SSL
$ssl = false;
// Логин и пароль для подключения
$login = '';
$password = '';
// Создание подключения
$api = new BaseJsonRpcClient($entryUrl, $ssl, $login, $password);
// Установка параметров для вызова
$dbn = 'IBIS';
$exp = 'A=$';
$seq = '';
$format = '@API/info';
$numMfn = 1;
$firstMfn = 1;
$Min = 0;
$Max = 0;
$SortBy = '';
$AscSortDir = true;
$UseCacheInSearch = false;
$asJson = true;
// Выполнение поиска записей с указанными авторами по БД IBIS с запросом первой записи результата поиска
$result = $api->Search($dbn, $exp, $seq, $format, $numMfn, $firstMfn, $Min, $Max, $SortBy, $AscSortDir, $UseCacheInSearch, $asJson);
// Вывод полученного результата
var_export($result);
Результат работы скрипта:
Всего запросу соответствует 177 записей, возвращена информация о первой из них в формате API/info.
BaseJsonRpcCall::__set_state(array(
'Id' => 1,
'Method' => 'Search',
'Params' =>
array (
0 => 'IBIS',
1 => 'A=$',
2 => '',
3 => '@API/info',
4 => 1,
5 => 1,
6 => 0,
7 => 0,
8 => '',
9 => true,
10 => false,
11 => true,
),
'Error' => NULL,
'Result' =>
array (
0 => 177,
1 =>
(object) array(
'brief' => 'Колисниченко, Денис Николаевич. Android для пользователя : полезные программы и советы / Денис Колисниченко, 2013. - 254 с.',
'examplarInfo' =>
array (
0 =>
(object) array(
'total' =>
(object) array(
'count' => 0,
),
'free' =>
(object) array(
'count' => 0,
'inventories' =>
array (
),
),
'busy' =>
(object) array(
'count' => 0,
'inventories' =>
array (
),
),
'place_of_store' => 'ХР',
),
1 =>
(object) array(
'total' =>
(object) array(
'count' => 0,
),
'free' =>
(object) array(
'count' => 0,
'inventories' =>
array (
),
),
'busy' =>
(object) array(
'count' => 0,
'inventories' =>
array (
),
),
'place_of_store' => NULL,
),
),
'title' => 'Android для пользователя : полезные программы и советы',
'interestingArticles' => '',
'onTabs' => '',
'documentType' => 'Однотомное издание',
'publicationCode' => '004.4/К 60-460343092',
'authors' => 'Колисниченко, Денис Николаевич',
'unifiedFormHeader' => '',
'parallelTitles' => '',
'transliteratedTitle' => '',
'imprint' => 'Санкт-Петербург: БХВ-Петербург, 2013',
'quantitativeCharacteristics' => '254 с.: ил + 24 см',
'teams' => '',
'series' => '',
'misreadTitles' => '',
'translationOfThePublication' => '',
'parallelEditions' => '',
'braided' => '',
'placeOfPublication' => '',
'typeAndVolumeOfResource' => '',
'systemRequirements' => '',
'notes' => 'Указ.',
'issn' => '',
'isbn' => '978-5-9775-06 80-9: 130.50 р.',
'identificationNumber' => '',
'grnti' => '20.53.31',
'udc' => '004.4',
'bbk' => 'З884.16-56-05,0',
'subjectHeadings' => 'Радиоэлектроника -- Электрическая связь -- Радиосвязь -- Радиотелефонная связь; Мобильная связь -- Радиотелефоны; Вычислительная техника -- Вычислительные машины электронные цифровые -- Автоматическая обработка информации; ANDROID, операционная система -- Программирование',
'meshMain' => '',
'meshNonMain' => '',
'geographicalHeadings' => '',
'descriptor' => '',
'keywords' => '',
'content' => '',
'annotation' => '',
'receiptsRegistered' => '',
'thePublicationCanBeFoundIn' => '',
'url' =>
array (
0 =>
(object) array(
'*' => '',
'A' => 'Пример PDF-файла.pdf',
'T' => 'Пример PDF-файла',
'N' => '14',
),
),
),
),
))