Simple clientSDK builder for any json-RPC servers
See the Documentations
Run cli command php bin/make.php
$ php bin/make.php
> Enter API vendor name: some_vendor
> Enter the API url: http://some.url/api
This example shows working with the generated SDK. IMPORTANT: You may have other procedure classes. The example only shows the concept of interaction.
<?php
use Symfony\Component\HttpClient\CurlHttpClient;
use Ufo\RpcSdk\Client\Shortener\UserProcedure;
use Ufo\RpcSdk\Client\Shortener\PingProcedure;
use Ufo\RpcSdk\Procedures\AbstractProcedure;
require_once __DIR__ . '/../vendor/autoload.php';
$headers = [
'Ufo-RPC-Token'=>'some_security_token'
];
try {
$pingService = new PingProcedure(
headers: $headers
);
echo $pingService->ping(); // print "PONG"
// ...
$userService = new UserProcedure(
headers: $headers,
requestId: uniqid(),
rpcVersion: AbstractProcedure::DEFAULT_RPC_VERSION,
httpClient: new CurlHttpClient(),
httpRequestOptions: []
);
$user = $userService->createUser(
login: 'some_login',
password: 'some_password'
);
var_dump($user);
// array(3) {
// ["id"]=> int(279232969)
// ["login"]=> string(3) "some_login"
// ["status"]=> int(0)
} catch (\Throwable $e) {
echo $e->getMessage() . PHP_EOL;
}
// ...
<?php
// ...
use Ufo\RpcSdk\Procedures\RequestResponseStack;
// ...
$fullStack = RequestResponseStack::getAll(); // get all previous requests and responses
$lastStack = RequestResponseStack::getLastStack(); // get last requests and responses
$lastRequest = RequestResponseStack::getLastRequest(); // get last request
$lastResponse = RequestResponseStack::getLastResponse(); // get last response
// ...