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.
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.
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