No description, website, or topics provided.
Clone or download
Latest commit b75b448 Oct 31, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src fix model Oct 31, 2018
.gitignore v1 Oct 30, 2018
README.md update readme v2 Oct 31, 2018
composer.json v1 Oct 30, 2018
composer.lock v1 Oct 30, 2018

README.md

ЭБС IPR BOOKS PHP SDK

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

Содержание:

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

Установка

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