chris-doehring/enm-json-api-client

This package is abandoned and no longer maintained. The author suggests using the dogado/json-api-client package instead.

Abstract client-side php implementation of the json api specification (jsonapi.org)

6.1.0 2020-10-31 22:36 UTC

This package is auto-updated.

Last update: 2021-06-14 20:02:38 UTC


README

Build Status Coverage Status Total Downloads Latest Stable Version Latest Unstable Version License

This package is abandoned. Please use dogado/json-api-client instead.

Abstract client-side PHP implementation of the json api specification.

It's based on the original creation of the eosnewmedia team and the maintainer Philipp Marien.

Installation

composer require chris-doehring/enm-json-api-client

It's recommended to install guzzlehttp/guzzle version ^7.0 as http-client and http-interop/http-factory-guzzle for PSR-17 compatible factories.

composer require guzzlehttp/guzzle http-interop/http-factory-guzzle

You can also use any other HTTP client which implements PSR-18.

Usage

First you should read the docs at chris-doehring/enm-json-api-common where all basic structures are defined.

Your API client is an instance of Enm\JsonApi\Client\JsonApiClient, which requires a PSR-18 HTTP client (Psr\Http\Client\ClientInterface) to execute requests.

$client = new JsonApiClient(
    'http://example.com/api',
    $httpClient, // instance of Psr\Http\Client\ClientInterface
    $uriFactory, // instance of Psr\Http\Message\UriFactoryInterface
    $requestFactory, // instance of Psr\Http\Message\RequestFactoryInterface
    $streamFactory, // instance of Psr\Http\Message\StreamFactoryInterface
    new Serializer(),
    new Deserializer()
);

$request = $client->createGetRequest(new Uri('/myResources/1')); // will fetch the resource at http://example.com/api/myResources/1
$request->requestInclude('myRelationship'); // include a relationship

$response = $client->execute($request);

$document = $response->document();
$myResource = $document->data()->first(); // the resource fetched by this request
$myIncludedResources = $document->included()->all(); // the included resources fetched with the include parameter