iprbooks / iprbooks-ebs-sdk
IPR Books SDK
1.0.2
2025-03-21 08:59 UTC
Requires
- php: 5.3.* || 5.4.* || 5.5.* || 5.6.* || 7.0.* || 7.1.* || 7.2.* || 7.3.* || 7.4.*||8.*
- ext-curl: *
- ext-json: *
Requires (Dev)
- firebase/php-jwt: 5.0.0
This package is not auto-updated.
Last update: 2025-03-28 19:15:30 UTC
README
API ЭБС IPR BOOKS - RESTful API сервер, предназначенный для взаимодействия с информационными системами клиентов - подписчиков ЭБС IPR BOOKS. Документация по API находится здесь.
Содержание:
- Установка
- Инициализация клиента API
- Доступ к метаданным
- Управление пользователями
- Бесшовная интеграция
Установка
Простой и наиболее предпочтительный способ установки SDK - composer."iprbooks/iprbooks-ebs-sdk" : "dev-master"
Другой способ - скачать архив с исходным кодм master.zip или воспользоваться git clone и вручную добавить в проект.
git clone git@github.com:iprbooks/iprbooks-ebs-sdk.git
Инициализация клиента Api
Для инициализации клиента необходимы следующие параметрыПараметр | Описание |
---|---|
$clientId | Идентификатор организации-клиента ЭБС IPR BOOKS (получается вместе с ключевой фразой для получения JWT-токена). |
$token | В личном кабинете ЭБС авторизоваться под главным пользователем организации, сгенерировать ключ защиты данных для JWT-авторизации запросов. |
Пример
$clientId = 187; $token = 'qdEEZBzAr!KV%Dq(WfNm]mNdLzn(m8{8'; $client = new Client($clientId, $token);
Доступ к метаданным
Доступ к метаданным позволяет посредством API получать информацию о книгах и периодических изданиях, доступных подписчику ЭБС IPR BOOKS в рамках приобретенной подписки.Получение коллекции книг
Список полей для фильтрации с описанием доступен в BooksCollection.php, атрибуты элемента коллекции (книги) доступны с помощью публичных методов определенных и описанных в Book.phpПример:
// инициализация клиента $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(); }
Получение метаданных книги
Атрибуты книги доступны с помощью публичных методов определенных и описанных в Book.phpПример:
// инициализация клиента $client = new Client($clientId, $token); // создание объекта книги $book = new Book($client); // получение книги по $id $book->get(7039); // обращение к одному из атрибутов книги $title = $book->getTitle(); // получение содержания $content = $book->getContent(); $content->get(0)->getPage();
Получение коллекции периодических изданий
Список полей для фильтрации с описанием доступен в JournalCollection.php, атрибуты элемента коллекции (периодического издания) доступны с помощью публичных методов определенных и описанных в Journal.phpПример:
// инициализация клиента $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(); }
Получение метаданных периодического издания
Атрибуты книги доступны с помощью публичных методов определенных и описанных в Journal.phpПример:
// инициализация клиента $client = new Client($clientId, $token); // создание объекта периодического издания $journal = new Journal($client); // получение периодического издания по $id $journal->get(3181); // обращение к одному из атрибутов $title = $journal->getTitle();
Получение коллекции выпусков периодического издания
Список полей для фильтрации с описанием доступен в IssuesCollection.php, атрибуты элемента коллекции (выпуска) доступны с помощью публичных методов определенных и описанных в Issue.phpПример:
// инициализация клиента $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(); }
Получение метаданных выпуска периодического издания
Атрибуты книги доступны с помощью публичных методов определенных и описанных в Issue.phpПример:
// инициализация клиента $client = new Client($clientId, $token); // создание объекта выпуска $issue = new Issue($client); // получение выпуска по $id $issue->get(3339); // обращение к одному из атрибутов $title = $issue->getTitle();
Управление пользователями
Получение текущего списка пользователей
Список полей для фильтрации с описанием доступен в UsersCollection.php, атрибуты элемента коллекции (пользователя) доступны с помощью публичных методов определенных и описанных в User.phpПример:
// инициализация клиента $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();
Блокировка пользователя
Блокировка пользователя организации по idПример:
// инициализация клиента $client = new Client($clientId, $token); $manager = new UserManager($client); $manager->deleteUser(187);
Восстановление пользователя
Восстановление пользователя организации по idПример:
// инициализация клиента $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);