bokbasen / php-sdk-met-api
PHP SDK Bokbasen的元数据API
v2.1.0
2017-08-30 07:28 UTC
Requires
- php: >=7.1.0
- bokbasen/php-api-client: ^1.0
Requires (Dev)
- php-http/guzzle6-adapter: ^1.0
- php-http/mock-client: ^0.3
- phpunit/phpunit: ^6
This package is not auto-updated.
Last update: 2024-09-15 03:03:32 UTC
README
用于与Bokbasen元数据API交互的SDK。目前仅支持导出功能。
SDK假定您已了解API,请参阅文档:https://bokbasen.jira.com/wiki/spaces/api/pages/61964298/Metadata
身份验证
此SDK需要Bokbasen API客户端,有关如何实现的详细信息,请参阅php-api-client
以下所有代码示例都假设存在此变量
<?php use Bokbasen\Auth\Login; use Bokbasen\ApiClient\Client; $auth = Login('username', 'password'); $client = new Client($auth); ?>
ONIX导出
创建ONIX导出客户端
在创建导出对象时使用auth对象并设置您的订阅(订阅基于您与Bokbasen的合同。基本、扩展或学校)
<?php use Bokbasen\Metadata\Export\Onix; $onixClient = new Onix($client, Onix::URL_PROD, Onix::SUBSCRIPTION_EXTENDED); ?>
获取单个ISBN的ONIX
<?php $onixAsString = $onixClient->getByISBN('9788276749557'); ?>
根据日期下载ONIX到文件
仅在您没有有效的下一个令牌时使用。给定文件名将被追加,直到获取所有页面(如果$downloadAllPages === true)
<?php $nextToken = $onixClient->downloadAfter(new \DateTime('2017-01-01'),'/onixFolder/'); //Save next token for later use ?>
根据令牌下载ONIX到文件
使用$nextToken获取自上次执行以来所有更改
<?php //Loop to get all pages $morePages = true; while($morePages){ $morePages = $onixClient->downloadNext($nextToken,'/onixFolder/'); $nextToken = $onixClient->getLastNextToken(); } //Save next token for later use ?>
获取XML字符串
如果您不想使用SDK为您编写文件,请使用以下方法获取每个请求的完整响应对象。这意味着您需要自己实现头部解析逻辑。
<?php $response = $onixClient->getAfter(new \DateTime('2017-01-01')); //Implement your own parsing here and get token from header //Use token to get more pages $response = $onixClient->getNext($token); ?>
对象导出
对象报告在分页方面与ONIX下载有类似的过程。SDK抽象了报告方面并为您下载实际文件。
下载自某个日期以来的所有对象更改
仅在您没有有效的下一个令牌时使用。
<?php $nextToken = $objectClient->downloadAfter(new \DateTime('2017-10-01'),'/pathForObjects/'); //Save next token for later use ?>
根据令牌下载对象到文件
使用$nextToken获取自上次执行以来所有更改
<?php //Loop to get all pages, each page will be stored as separate file $morePages = true; while($morePages){ $morePages = $onixClient->downloadNext($nextToken,'/pathForObjects/'); $nextToken = $onixClient->getLastNextToken(); } //Save next token for later use ?>
其他过滤器
<?php //Only download spesific types of objects $nextToken = $objectClient->downloadAfter(new \DateTime('2017-10-01'),'/pathForObjects/',[\Bokbasen\Metadata\Export\Object::OBJECT_TYPE_AUDIO_SAMPLE,\Bokbasen\Metadata\Export\Object::OBJECT_COVER_IMAGE_SMALL]); //you can also download for spesific ISBNs ($downloadAllPages must be true for this to work, and ensure to set a old date) $objectClient->downloadAfter(new \DateTime('1950-01-01'),'/pathForObjects/',[\Bokbasen\Metadata\Export\Object::OBJECT_TYPE_AUDIO_SAMPLE,\Bokbasen\Metadata\Export\Object::OBJECT_COVER_IMAGE_SMALL],true,['9788251824491','9788215012520']); ?>