bookboon / api
Bookboon API 的包装器
Requires
- php: >=7.3
- ext-curl: *
- ext-json: *
- league/oauth2-client: ~2.3
- psr/log: ^1.1
- psr/simple-cache: ^1.0
Requires (Dev)
- phpunit/phpunit: ~9.0
- vimeo/psalm: ^4.7
- dev-master
- v4.18.2
- v4.18.1
- v4.18
- v4.17.3
- v4.17.2
- v4.17.1
- v4.17
- v4.16
- v4.15
- v4.14
- v4.13.1
- v4.13
- v4.12
- v4.11.3
- v4.11.2
- v4.11.1
- v4.11
- v4.10.2
- v4.10.1
- v4.10
- v4.9.1
- v4.9
- v4.8.3
- v4.8.2
- v4.8.1
- v4.8
- v4.7
- v4.6.1
- v4.6
- v4.5.3
- v4.5.2
- v4.5.1
- v4.5
- v4.4.1
- v4.4
- v4.3
- v4.2
- v4.1
- v4.0
- 3.x-dev
- v3.14.1
- v3.14
- v3.12
- v3.11
- v3.10
- v3.9
- v3.8.1
- v3.8
- v3.7.1
- v3.7
- v3.6.1
- v3.6
- v3.5
- v3.4
- v3.3
- v3.2
- v3.1
- v3.0
- 2.x-dev
- v2.4.5
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3
- v2.2.1
- v2.2
- v2.1.1
- v2.1
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0
- 1.x-dev
- v1.4.1
- v1.4
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1
- dev-hotfix/filters-mistake
- dev-feature/gitlab-actions
- dev-hotfix/seedParamForSingleFrontpage
- dev-hotfix/seedParamForFrontpage
- dev-feature/hash-identifiable
- dev-hotfix/addClassroomAsType
- dev-feature/addChaptersAndTimeTags
- dev-hotfix/error-code
- dev-feature/rec-versioning
- dev-feature/classroom
- dev-hotfix/lang-name
- dev-feature/php8
- dev-feature/psalm
- dev-hotfix/client-options
- dev-hotfix/sentry-pass-through
- dev-hotfix/booksLimit
- dev-hotfix/add-email-to-provider
- dev-feature/preserve-zipkin-headers
- dev-hotfix/errors
- dev-hotfix/professional-book-type
- dev-hotfix/v1-ns
- dev-hotfix/thumbnailresolver
- dev-hotfix/author-thumb
- dev-hotfix/journey-thumb
- dev-hotfix/fix-static
- dev-hotfix/header-class
- dev-hotfix/case-insentive-take-2
- dev-hotfix/headers-case-insensitive
- dev-feature/new-entities
- dev-hotfix/fix-last
- dev-feature/subscription
- dev-feature/getAllAuthors
- dev-hotfix/curl-errors
- dev-feature/logger
- dev-hotfix/thumbnail-raw
- dev-feature/bookTypes
- dev-hotfix/book-type
- dev-hotfix/prevent-incorrect-use
This package is auto-updated.
Last update: 2024-09-05 16:22:46 UTC
README
PHP 类是 Bookboon.com API 的包装器。因为这是一个包装器类,所以在使用之前你应该熟悉 REST API。
##使用方法
要使用 Bookboon API,你需要一个应用程序 ID 和密钥(如下面的 $API_ID
和 $API_SECRET
),请参阅 API 页面 获取详细信息。通过 composer 安装
composer require bookboon/api
如果不使用 composer,可以使用任何 PSR-0 兼容的自动加载器,或者手动要求每个文件。
获取书籍的最简单方法就是使用 getBook 方法
$bookboon = new Bookboon($API_ID, $API_SECRET, array(/*optional named array to set request headers*/));
$book = $bookboon->getBook("BOOK_GUID");
这将返回一个具有每个属性公共获取器的 Book 对象。还有许多其他的简单获取函数
$category = $bookboon->getCategory("CATEGORY_GUID"); // return Category object
$reviews = $bookboon->getReviews("BOOK_GUID"); // return array of Review
$search = $bookboon->getSearch("query text"); // return array of Book
$recommendations = $bookboon->getRecommendations(array("BOOK_ID_1", "BOOK_ID_2"); // return array of Book
$questions = $bookboon->getQuestions(); // return array of Question
最后,你可以下载书籍,通常如下所示,你需要为每个唯一的用户发送一个唯一的用户标识符 handle
(例如用户 ID、电子邮件)
$url = $bookboon->getBookDownloadUrl("BOOK_GUID", array("handle" => "user@email"));
// Send the $url in a redirect header to the user
重要:请不要存储此值,因为它将不断更改。
使用 api 原始数据
您还可以使用 api
方法从 API 获取数据库。要向 API 传递变量,请使用 api
函数发送一个包含 api
的数组
/* The bacon-loving student */
$vars = array('post' => array( 'answer[0]' => '6230e12c-68d8-45d5-8f02-1d3997713150',
'answer[1]' => '5aca0fe1-0d93-41b1-8691-aa242a526f17'
)
);
$bookboon->api('/questions', $vars);
注意:为了让 PHP 类更加灵活,您需要告诉它是否使用 POST 或 GET 方法传递变量。
api
函数仅接受名为 'post' 和 'get' 的键,并将它们各自的数组解析为正确的查询字符串。
##结果
api
方法的结果是来自 API 的直接数据 json 解码数组,如果您使用其他任何方法(getbooks
、getCategories
等),则将返回适当的对象。
##异常
包装器将抛出几种不同的异常。如果 API 响应未处理的 HTTP 状态,例如如果缺少变量(403)、提交的数据格式不正确(400)或未知 API 错误(500),则可能需要捕获这些错误,如下所示
$bookboon = new Bookboon($API_ID, $API_SECRET);
try {
print_r($bookboon->api('/recommendations', array(
'get' => array(
'books' => $book_id
)));
}
catch (NotFoundException $e) {
// handle exception here
}
目前我们抛出以下异常
ApiSyntaxException
- 通常缺少或格式不正确的参数
AuthenticationException
- 凭证无效
GeneralApiException
- 当发生某些未知错误时,请向我们报告此问题
NotFoundException
- API 返回未找到状态(404)
##缓存
包装器类提供了一个用于加速 GET 查询的缓存接口。目前仅实现了 memcached。要设置缓存提供程序,请使用 setCache
方法
$bookboon->setCache(new \Bookboon\Api\Memcached($server, $port, $timeToLive));
要实现自己的提供者缓存软件,请确保您的接口实现了 \Bookboon\Api\Cache
。它只有三个方法:save
、get
和delete
,因此应该足够简单易行。