datalib / datalib-php-sdk
DataLIB PHP SDK
dev-master
2022-07-27 11:53 UTC
Requires
- php: >=7.1
- ext-curl: *
- ext-json: *
This package is not auto-updated.
Last update: 2025-04-03 01:02:07 UTC
README
API DATALIB - RESTful API сервер, предназначенный для взаимодействия с информационными системами клиентов - подписчиков DataLIB. Документация по API находится будет здесь.
Содержание:
Установка
Простой и наиболее предпочтительный способ установки SDK - composer."datalib/datalib-php-sdk" : "dev-master"
Другой способ - скачать архив с исходным кодм master.zip или воспользоваться git clone и вручную добавить в проект.
git clone git@github.com:iprbooks/datalib-php-sdk.git
Инициализация клиента Api
Для инициализации клиента необходим jwt-token. Получить его можно связавшись с техподдержкой support@iprmedia.ruПример
$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuYXBpLmRhdGFsaWIucnVcL2FwaVwvYXV0aFwvbG9naW4iLCJpYXQiOjE2NTcxNzc5MDMsIm5iZiI6MTY1NzE3NzkwMywianRpIjoidHd5RFF4OGFFN0RpSjJTaCIsInN1YiI6OSwicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.4zjEXK6FBPeKr-N5PmdGucVV_Ekt9RhtRiJ7iuAtbD0'; $client = new Client($token);
Доступ к метаданным
Доступ к метаданным позволяет посредством API получать информацию о книгах, доступных подписчику DataLIB в рамках приобретенной подписки.Получение списка авторов с фильтрацией
$authors = new AuthorsCollection($client); $authors->setFilter(AuthorsCollection::TEXT, 'Ивано'); $authors->get(); $author = $authors->getItem(0);
Получение списка издательств с фильтрацией
$publishers = new PublishersCollection($client); $publishers->setFilter(PublishersCollection::TEXT, 'ай пи ар'); $publishers->get(); $publisher = $publishers->getItem(0);
Получение списка дисциплин с фильтрацией
$disciplines = new DisciplinesCollection($client); $disciplines->setFilter(DisciplinesCollection::TEXT, '') ->setFilter(DisciplinesCollection::CATEGORY_ID, 1) ->get(); $discipline = $disciplines->getItem(0);
Получение списка заголовков книг с фильтрацией
$titles = new TitleCollection($client); $titles->setFilter(TitleCollection::TEXT, 'алгебра'); $titles->get(); $title = $titles->getItem(0);
Получение списка типов публикаций
$pubTypes = new PubTypeCollection($client); $pubTypes->get(); $pubType = $pubTypes->getItem(0);
Получение списка категорий
// TODO
Получение коллекции книг
Список полей для фильтрации с описанием доступен в BooksCollection.php, атрибуты элемента коллекции (книги) доступны с помощью публичных методов определенных и описанных в Book.phpПример:
// создание и конфигурация объекта коллекции $bookCollection = new BooksCollection($client); $bookCollection->setFilter(BooksCollection::CATEGORY, 1) ->setFilter(BooksCollection::RELATED_CATEGORIES, array(2, 3)) ->setPage(3) ->get(); // обращение к элементу коллекции по индексу $title = $bookCollection->getItem(0)->getTitle(); // перебор элементов коллекции foreach ($bookCollection as $book) { $title = $book->getTitle(); }
Получение метаданных книги
Атрибуты книги доступны с помощью публичных методов определенных и описанных в Book.phpПример:
// создание объекта книги $book = new Book($client); // получение книги по $id $book->get(116611); // обращение к одному из атрибутов книги $title = $book->getId(); // получение содержания $content = $book->getContent(); $content->get(0)->getPage();
Бесшовная интеграция
Создание ссылки для прохождения автоматической регистрации/аутентификации пользователя
Обязательные параметры:
- $email — email пользователя, если он уже зарегистрирован, произойдет автоматическая авторизация данного пользователя
- $fullname - полное имя пользователя
Необязательные параметры:
- $publicationId - если передано, произойдет автопереход на страницу публикации
Внимание! Для каждого пользователя DataLib ссылка бесшовного перехода одноразовая и может быть только одна. Рекомендуется генерировать ее непосредственно перед использованием.
Пример:
// инициализация $userManager = new UserManager($client); // параметры $email = 'test@test.com'; $fullname = 'testname'; $publicationId = 123; //получение ссылки $url = $userManager->generateAutoAuthUrl($email, $fullname, $publicationId);