iprbooks/iprbooks-ebs-sdk

1.0.1 2019-09-18 07:39 UTC

This package is not auto-updated.

Last update: 2024-09-27 17:13:55 UTC


README

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 = 187;
$token = 'qdEEZBzAr!KV%Dq(WfNm]mNdLzn(m8{8';

$client = new Client($clientId, $token);

访问元数据

访问元数据允许通过API获取有关书籍和期刊的信息,这些信息是订阅者通过购买订阅获得的。

获取书籍集合

可用于过滤的字段列表及其描述可在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 — 用户电子邮件地址,长度不超过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 — 用户电子邮件地址,如果已注册,将自动授权该用户
  • $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);