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: 2024-10-02 22:42:31 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访问元数据可以获取订阅者拥有的书籍信息。获取带有过滤条件的作者列表
$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);