This tutorial help to create rest client using Guzzle library, which is a PHP rest client framework to consume rest service. I am creating a Client of the guzzle and access GitHub API. I will let you know how to access the first rest endpoint using the guzzle. You need to download Guzzle github.

The Guzzle has the following features,

  • All the power of cURL with a simple interface.
  • Powered by the Symfony2 EventDispatcher.
  • Includes a custom node.js webserver to test your clients.
  • Persistent connections and parallel requests.
  • Streams request and response bodies
  • Service descriptions for quickly building clients.
  • Use all of the code or only specific components.
  • Plugins for caching, logging, OAuth, mocks, and more

How to download and configure Guzzle

Step 1: Download the zip file from here.
Step 2: Extract the above zip file and copy all files into xampp/htdocs/guzzle_test folder.
Step 3: Now run composer update the command(please make sure your root folder is xampp/htdocs/guzzle_test ), this command will download all dependency plugins into the vendor folder.
Step 4: Created a new test.php file and put the below code into this file.

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">require_once 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
// Base URI is used with relative requests
'base_uri' => 'https://api.github.com/',
// You can set any number of default request options.
'timeout'  => 2.0,
//ssl false
'verify' => false
]); 
$response = $client->request('GET');
//$client = new Client('https://api.github.com/'); 
//$request = $client->get();
//$response = $request->send(); 
echo "</pre>
<!-- /wp:preformatted -->
<!-- wp:preformatted -->
<pre class="wp-block-preformatted">";
echo $response->getBody();
?></pre>
<!-- /wp:preformatted -->

line #1 use for load all classes from the vendor folder and I am using a PHP 'use' operator, which will use for giving aliases to names of classes, interfaces or other namespaces.

line #5 created Client instances of guzzle which takes 'base_uri' : for base url ,’ timeout' : request timeout of request and 'verify' : is use non SSL verification.
after the rest client creation, I called the request method that will takes the rest endpoint and query as parameters, here I haven’t passed anything so that will access all GitHub rest endpoints.

to print the response, I am using getBody() method of guzzle.

Genislab Technologies

NexGeneration complete end-2-end software testing & modern development operations tooling & solutions

Do you want to discuss your testing requirements with us? please don’t hesitate to hit the contact us button below, and we will get back to you at our earliest..