API ЭБС IPR BOOKS - RESTful API сервер, предназначенный для взаимодействия с информационными системами клиентов - подписчиков ЭБС IPR BOOKS. Документация по API находится здесь.
- Установка
- Инициализация клиента API
- Доступ к метаданным
- Управление пользователями
- Бесшовная интеграция
"iprbooks/iprbooks-ebs-sdk" : "dev-master"
Другой способ - скачать архив с исходным кодм master.zip или воспользоваться git clone и вручную добавить в проект.
git clone git@github.com:iprbooks/iprbooks-ebs-sdk.git
Параметр | Описание |
---|---|
$clientId | Идентификатор организации-клиента ЭБС IPR BOOKS (получается вместе с ключевой фразой для получения JWT-токена). |
$token | В личном кабинете ЭБС авторизоваться под главным пользователем организации, сгенерировать ключ защиты данных для JWT-авторизации запросов. |
$clientId = 187;
$token = 'qdEEZBzAr!KV%Dq(WfNm]mNdLzn(m8{8';
$client = new Client($clientId, $token);
// инициализация клиента
$client = new Client($clientId, $token);
// создание и конфигурация объекта коллекции
$booksCollection = new BooksCollection($client);
$booksCollection->setFilter(BooksCollection::YEAR_LEFT, '2010')
->setFilter(BooksCollection::YEAR_RIGHT, '2010')
->setLimit(25)
->setOffset(0);
// выполнение запроса
$booksCollection->get();
// обращение к элементу коллекции по индексу
$title = $booksCollection->getItem(0)->getTitle();
// перебор элементов коллекции с помощью foreach
foreach ($booksCollection as $book) {
$title = $book->getTitle();
}
// инициализация клиента
$client = new Client($clientId, $token);
// создание объекта книги
$book = new Book($client);
// получение книги по $id
$book->get(7039);
// обращение к одному из атрибутов книги
$title = $book->getTitle();
// получение содержания
$content = $book->getContent();
$content->get(0)->getPage();
// инициализация клиента
$client = new Client($clientId, $token);
// создание и конфигурация объекта коллекции
$journalCollection = new JournalsCollection($client);
$journalCollection->setLimit(25)->setOffset(0);
// выполнение запроса
$journalCollection->get();
// обращение к элементу коллекции по индексу
$title = $journalCollection->getItem(0)->getTitle();
// перебор элементов коллекции с помощью foreach
foreach ($journalCollection as $journal) {
$title = $journal->getTitle();
}
// инициализация клиента
$client = new Client($clientId, $token);
// создание объекта периодического издания
$journal = new Journal($client);
// получение периодического издания по $id
$journal->get(3181);
// обращение к одному из атрибутов
$title = $journal->getTitle();
// инициализация клиента
$client = new Client($clientId, $token);
// создание и конфигурация объекта коллекции
$issuesCollection = new IssuesCollection($client);
$issuesCollection->setLimit(25)->setOffset(0);
// выполнение запроса, $id - id периодического издания
$issuesCollection->get(3181);
// обращение к элементу коллекции по индексу
$title = $issuesCollection->getItem(0)->getTitle();
// перебор элементов коллекции с помощью foreach
foreach ($issuesCollection as $issue) {
$title = $issue->getTitle();
}
// инициализация клиента
$client = new Client($clientId, $token);
// создание объекта выпуска
$issue = new Issue($client);
// получение выпуска по $id
$issue->get(3339);
// обращение к одному из атрибутов
$title = $issue->getTitle();
// инициализация клиента
$client = new Client($clientId, $token);
// создание и конфигурация объекта коллекции
$usersCollection = new UsersCollection($client);
$usersCollection->setLimit(25)->setOffset(0);
// выполнение запроса, $id - id периодического издания
$usersCollection->get();
// обращение к элементу коллекции по индексу
$email = $usersCollection->getItem(0)->getEmail();
// перебор элементов коллекции с помощью foreach
foreach ($usersCollection as $user) {
$email = $user->getEmail();
}
// инициализация клиента
$client = new Client($clientId, $token);
// создание объекта книги
$user = new User($client);
// получение пользователя по $id
$user->get(187);
// обращение к одному из атрибутов
$email = $user->getEmail();
- $email — email-адрес пользователя, длина не более 255 символов
- $fullname — полное имя пользователя
- $password — пароль пользователя
Необязательные параметры:
- $userType — тип пользователя. Список возможных значений доступен в User.php
// инициализация клиента
$client = new Client($clientId, $token);
$email = 'newuser@mail.ru';
$fullname = 'newuser@mail.ru';
$password = '********';
$userType = User::STUDENT;
$manager = new UserManager($client);
$user = $manager->registerNewUser($email, $fullname, $password, $userType);
$userId = $user->getId();
// инициализация клиента
$client = new Client($clientId, $token);
$manager = new UserManager($client);
$manager->deleteUser(187);
// инициализация клиента
$client = new Client($clientId, $token);
$manager = new UserManager($client);
$manager->restoreUser(187);
Обязательные параметры:
- $userId - id пользователя организации
Необязательные параметры:
- $publicationId — проверяется существует ли данная публикация, если да, произойдет автопереход на страницу публикации
// инициализация клиента
$client = new Client($clientId, $token);
// получение id пользователя организации
$usersCollection = new UsersCollection($client);
$usersCollection->get();
$userId = $usersCollection->getItem(0)->getId();
// получение ссылки
$integrationManager = new IntegrationManager($client);
$url = $integrationManager->generateToken($userId);
Обязательные параметры:
- $email — email пользователя, если он уже зарегистрирован, произойдет автоматическая авторизация данного пользователя
- $fullname - полное имя пользователя
- $userType - тип пользователя:
- 1 - студенты
- 2 - аспиранты
- 3 - преподаватели
- 4 - нетипизированный(по умолчанию)
- $publicationId - если передано, проверяется существует ли данная публикация, если да, произойдет автопереход на страницу публикации
- $openMethod - работает, если передан publication_id, значения true/false. Если параметр передан, проверит доступность издания, проверит возможность загрузки в iframe, если все проверки успешно пройдены, откроет ридер с загруженной публикацией.
// инициализация клиента
$client = new Client($clientId, $token);
$integrationManager = new IntegrationManager($client);
// данные пользователя
$email = 'test@test.com';
$fullname = 'testname';
$userType = USER::STUDENT;
$publicationId = 123;
$isFrameOpen = true;
//получение ссылки
$url = $integrationManager->generateAutoAuthUrl($email, $fullname, $userType, $publicationId, $isFrameOpen);