Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 

README.md

ЭБС IPR BOOKS PHP SDK

API ЭБС IPR BOOKS - RESTful API сервер, предназначенный для взаимодействия с информационными системами клиентов - подписчиков ЭБС IPR BOOKS. Документация по API находится здесь.

Содержание:

  1. Установка
  2. Инициализация клиента API
  3. Доступ к метаданным
  4. Управление пользователями
  5. Бесшовная интеграция

Установка

Простой и наиболее предпочтительный способ установки 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);

About

No description, website, or topics provided.

Resources

Packages

No packages published

Languages

You can’t perform that action at this time.