Install:
composer require bigoen/api-bridge
Create model:
<?phpnamespaceApp\Model;
class Example {
public ?string$name = null;
public ?string$email = null;
}If you want error class, create model:
<?phpnamespaceApp\Model;
class Error {
public ?string$status = null;
public ?string$message = null;
}Create client:
useApp\Model\Example;
useApp\Model\Error;
useSymfony\Component\HttpClient\HttpClient;
useBigoen\ApiBridge\HttpClient\SimpleClient;
$httpClient = HttpClient::create();
$client = newSimpleClient($httpClient); $client
->setBaseUrl("http://example.com")
->setClass(Example::class)
->setThrowClass(Error:class)
->setOptions([
// Set http client request options.
]);
// all objects.$client->setPath("/api/examples")->getAll();
// get object with id.$client->setPath("/api/examples/{id}")->setId(1)->get();
// post object.$model = newExample();
$model->name = 'Test';
$model->email = 'test@example.com';
$postModel = $client->setPath("/api/examples")->post($model);
// put object.$model = $client->setPath("/api/examples/{id}")->setId(1)->get();
$model->name = 'New Name';
$model = $client->setPath("/api/examples/{id}")->put($model);
// delete object.$isDelete = $client->setPath("/api/examples/{id}")->setId(1)->delete();Create model:
<?phpnamespaceApp\Model;
useBigoen\ApiBridge\Bridge\ApiPlatform\Model\Traits\JsonldModelTrait;
class Example {
use JsonldModelTrait;
public ?string$name = null;
public ?string$email = null;
}Create client for ApiPlatform projects or jsonld apis:
useApp\Model\Example;
useSymfony\Component\HttpClient\HttpClient;
useBigoen\ApiBridge\Bridge\ApiPlatform\HttpClient\JsonldClient;
$httpClient = HttpClient::create();
$client = newJsonldClient($httpClient); $client
->setBaseUrl("http://example.com")
->setClass(Example::class)
->setOptions([
// Set http client request options.
]);
// all objects.$pageOne = $client->setPath("/api/examples")->getAll();
// get next page objects.$pageTwo = $client->setPath($pageOne->nextPagePath)->getAll();
// get object with id.$client->setPath("/api/examples/{id}")->setId(1)->get();
// post object.$model = newExample();
$model->name = 'Test';
$model->email = 'test@example.com';
$postModel = $client->setPath("/api/examples")->post($model);
// put object.$model = $client->setPath("/api/examples/{id}")->setId(1)->get();
$model->name = 'New Name';
$model = $client->setPath("/api/examples/{id}")->put($model);
// delete object.$isDelete = $client->setPath("/api/examples/{id}")->setId(1)->delete();Convert api values in tree. Details: https://github.com/bigoen/api-bridge-converter