1. Go to this page and download the library: Download raigu/x-road-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/ */
raigu / x-road-client example snippets
$service = \Raigu\XRoad\Service::create(
'EE/COM/00000000/SubSys/Service/v0', // service name
'EE/COM/00000000/SubSys', // client name
\Raigu\XRoad\SecurityServer::create(
'https://security-server.client.com', // client's security server
new Client // Any PSR-18 compatible client.
)
);
$response = $service->request(<<<EOD
<prod:testService xmlns:prod="http://test.x-road.fi/producer">
<request>
<responseBodySize>5</responseBodySize>
</request>
</prod:testService>
EOD
);
echo $response; // will output the service provider's response extracted from SOAP envelope
class GuzzleAdapter implements \Psr\Http\Client\ClientInterface
{
/**
* @var \GuzzleHttp\Client
*/
private $client;
public function sendRequest(\Psr\Http\Message\RequestInterface $request): \Psr\Http\Message\ResponseInterface
{
return $this->client->send($request);
}
public function __construct()
{
$this->client = new \GuzzleHttp\Client();
}
}
vice = \Raigu\XRoad\Service::create(
$name = 'NIIS-TEST/GOV/0245437-2/TestService/testService/v1',
$client = 'NIIS-TEST/GOV/123456-7/testClient',
\Raigu\XRoad\SecurityServer::create(
'http://localhost:8080/test-service-0.0.3/Endpoint', // Win users: use your ip. Execute "docker-machine ip"
new Http\Client\Curl\Client
)
);
$response = $service->request(<<<EOD
<prod:testService xmlns:prod="http://test.x-road.fi/producer">
<request>
<responseBodySize>5</responseBodySize>
<responseAttachmentSize>0</responseAttachmentSize>
</request>
</prod:testService>
EOD
);
echo $response; // will output the service provider's response extracted from SOAP envelope
bash
$ php request.php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.