elife/api-client

eLife Sciences API客户端

dev-master / 1.0.x-dev 2024-05-29 06:59 UTC

README

Build Status

这个库提供了一个PHP客户端,用于eLife Sciences API

依赖关系

  • PHP 7

您需要一个eLife\ApiClient\HttpClient的实现;客户端为Guzzle 6提供了一个适配器。

安装

执行composer require elife/api-client

使用

eLife\ApiClient\ApiClient命名空间为eLife API的每个部分提供单独的客户端。

API客户端上的每个方法都代表一个端点。

您可以向API客户端传递默认头部,以及/或每个API客户端方法。您应该提供一个声明您支持哪些版本的Accept头部。

API客户端总是返回GuzzleHttp\Promise\PromiseInterface的实例,该实例封装了eLife\ApiClient\Result的实例,而eLife\ApiClient\Result又封装了JSON响应。

eLife\ApiClient\Result通过使用JMESPath(使用jmespath.php)提供集成,允许轻松搜索JSON响应。

基本示例

列出出现在端点第一个页面上的实验室帖子ID

use eLife\ApiClient\ApiClient\LabsClient;
use eLife\ApiClient\HttpClient\Guzzle6HttpClient;
use eLife\ApiClient\MediaType;
use GuzzleHttp\Client as Guzzle;

$guzzle = new Guzzle(['base_uri' => 'https://api.elifesciences.org/']);
$httpClient = new Guzzle6HttpClient($guzzle);
$labsClient = new LabsClient($httpClient);

var_dump($labsClient->listPosts(['Accept' => new MediaType(LabsClient::TYPE_POST_LIST, 1)])->wait()->search('items[*].id'));

弃用警告

由于eLife API使用HTTP Warning头部提供弃用警告,因此eLife\ApiClient\HttpClient\WarningCheckingHttpClient将它们传递给一个PSR-7 logger