fundevogel/php-pcbis

Zeitfracht's webservice API 的简单 PHP 包装器,用 PHP 编写


README

License Packagist Build

是什么

这个小型库可以通过利用由德国批发图书分销商 Zeitfracht 开发的 pcbis.de 的 JSON API 来收集有关图书的信息。官方 API 文档可以在 这里 找到。

为什么

它支持 我们的图书推荐 并从 德国国家图书馆 下载封面图片。

如何

它可以通过 Composer 获取

composer require fundevogel/php-pcbis

基本工作流程

入门非常简单

<?php

require_once('vendor/autoload.php');

use Fundevogel\Pcbis\Pcbis;

# Create object, passing credentials as first parameter (for caching, see below)
$object = new Pcbis([/* ... */]);

try {
    # After loading a book, you might want to ..
    $book = $object->load('978-3-522-20255-8');

    # (1) .. export its bibliographic data
    $data = $book->export();

    # (2) .. access specific information
    echo $book->title();

    # (3) .. download its cover
    if ($book->downloadCover()) {
        echo 'Cover downloaded!';
    }

    # (4) .. query its OLA status
    if ($book->isAvailable()) {
        # ...
    }

} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage(), "\n";
}

注意:在开发过程中使用此库时,请考虑使用类似这样的 API 测试端点

# Initialize API wrapper
$api = new Webservice($credentials);

# Use 'testing' URL 
$api->url = 'https://wstest.pcbis.de/ws30';

如果您想加载多个 EAN/ISBN,请使用 loadAll(array $identifiers),它返回一个 Products 对象。

注意:从 v3 版本开始,ISBN 验证默认不再启用。如果您希望在调用 isbn()(如果可用)时获取格式化的(=带有连字符的)ISBN,并且已安装 nicebooks/isbn,则 php-pcbis 将为您处理此操作。

缓存

默认情况下,php-pcbis 不实现任何缓存机制。如果您想存储数据——您可能应该这样做——可以通过以下方式实现

require_once('vendor/autoload.php');

use Fundevogel\Pcbis\Pcbis;

$obj = new Pcbis([/* ... */]);
$ean = 'identifier';

if ($myCache->has($ean)) {
    $data = $myCache->get($ean);
    $product = $obj->load($data);
}

else {
    $product = $obj->load($ean);
    $myCache->set($ean, $product->data);
}

鸣谢

大多数辅助函数都是从 Kirby 的优秀 toolkit 软件包中获取的,由 Bastian Allgeier(顺便说一下,他非常出色)。

祝您编码愉快!

©️ Fundevogel Kinder- und Jugendbuchhandlung