datalib/datalib-php-sdk

DataLIB PHP SDK

dev-master 2022-07-27 11:53 UTC

This package is not auto-updated.

Last update: 2024-10-02 22:42:31 UTC


README

API DATALIB - RESTful API服务器,用于与客户订阅的信息系统进行交互 DataLIB。API文档位于 此处

目录

  1. 安装
  2. 初始化API客户端
  3. 访问元数据
  4. 无缝集成

安装

安装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访问元数据可以获取订阅者拥有的书籍信息。

获取带有过滤条件的作者列表

$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 — 用户邮箱,如果已注册,则自动认证该用户
  • $fullname - 用户全名

可选参数

  • $publicationId - 如果提供,将自动跳转到指定出版页面

注意! 对于每个DataLib用户,无缝过渡链接是唯一的,且只能有一个。建议在使用前生成。

示例

// инициализация
$userManager = new UserManager($client);

// параметры
$email = 'test@test.com';
$fullname = 'testname';
$publicationId = 123;

//получение ссылки
$url = $userManager->generateAutoAuthUrl($email, $fullname, $publicationId);