PHP code example of pxc / json-api-client
1. Go to this page and download the library: Download pxc/json-api-client library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pxc / json-api-client example snippets php
'providers' => [
...,
\Swis\JsonApi\Client\Providers\ServiceProvider::class,
],
php
use Swis\JsonApi\Client\Interfaces\DocumentClientInterface;
use Swis\JsonApi\Client\Interfaces\ItemDocumentInterface;
class BlogRepository
{
protected $client;
public function __construct(DocumentClientInterface $client)
{
$this->client = $client;
}
public function all(array $parameters = [])
{
return $this->client->get('blogs?'.http_build_query($parameters));
}
public function create(ItemDocumentInterface $document, array $parameters = [])
{
return $this->client->post('blogs?'.http_build_query($parameters), $document);
}
public function find(string $id, array $parameters = [])
{
return $this->client->get('blogs/'.urlencode($id).'?'.http_build_query($parameters));
}
public function update(ItemDocumentInterface $document, array $parameters = [])
{
return $this->client->patch('blogs/'.urlencode($document->getData()->getId()).'?'.http_build_query($parameters), $document);
}
public function delete(string $id, array $parameters = [])
{
return $this->client->delete('blogs/'.urlencode($id).'?'.http_build_query($parameters));
}
}
bash
php artisan vendor:publish --provider="Swis\JsonApi\Client\Providers\ServiceProvider" --tag="config"
php
use Swis\JsonApi\Client\Item;
class AuthorItem extends Item
{
protected $type = 'author';
public function blogs()
{
return $this->hasMany(BlogItem::class);
}
}
class BlogItem extends Item
{
protected $type = 'blog';
public function author()
{
return $this->hasOne(AuthorItem::class);
}
}
php
protected function getHttpClient(): HttpClient
{
if (app()->environment('testing')) {
return new \Swis\Http\Fixture\Client(
new \Swis\Http\Fixture\ResponseBuilder('/path/to/fixtures');
);
}
return \Http\Adapter\Guzzle6\Client::createWithConfig(
[
'timeout' => 2,
]
);
}