Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

53 Commits

Repository files navigation

Api Bridge

Install:

composer require bigoen/api-bridge

SimpleClient

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();

JsonldClient

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

About

Bridges for api projects.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages