2017 © Pedro Peláez
 

library api-sdk

eLife Sciences API SDK

image

elife/api-sdk

eLife Sciences API SDK

  • Friday, July 27, 2018
  • by thewilkybarkid
  • Repository
  • 7 Watchers
  • 0 Stars
  • 5,789 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 2 Forks
  • 3 Open issues
  • 15 Versions
  • 13 % Grown

The README.md

eLife API SDK for PHP

This library provides a PHP SDK for the eLife Sciences API., (*1)

It includes code from the CsaGuzzleBundle for testing, which in the future will be a normal dependency (see csarrazi/CsaGuzzleBundle#169)., (*2)

Dependencies

Running tests

To run all tests locally:, (*3)

make test

Installation

Execute composer require elife/api-sdk., (*4)

Usage (ApiClient)

The eLife\ApiSdk\ApiClient namespace provides separate clients for each part of the eLife API., (*5)

Each method on an API client represents an endpoint., (*6)

You can pass default headers to an API client, and/or to each API client method. You should provide an Accept header stating which versions you support., (*7)

API clients always return instances of GuzzleHttp\Promise\PromiseInterface, which wrap instances of eLife\ApiClient\Result, which in turn wrap the JSON response., (*8)

eLife\ApiClient\Result provides integration with the JMESPath (using jmespath.php), to allow easy searching of JSON responses., (*9)

Basic example

To list the Labs Post IDs that appear on the first page of the endpoint:, (*10)

use eLife\ApiSdk\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'));

The Versions