Skip to content

abhilashpujari/php-restservice

Repository files navigation

PHP HTTP REST Client

CI build Lint Code Base

Simple PHP Client library that makes it easy to make REST API calls. It uses Guzzle Client as a dependencies

Installation

The recommended way to install this library is through Composer.

# Install Composer
curl -sS https://getcomposer.org/installer | php

Next, run the Composer command to install the latest stable version of this library:

php composer.phar require abhilashpujari/php-restservice dev-master

After installing, you need to require Composer's autoloader:

require 'vendor/autoload.php';

You can then later update this library using composer:

php composer.phar update

Usage

1 GET Request

use RestService\RestService;

$restService = new RestService();
$response = $restService
    ->setEndpoint('https://jsonplaceholder.typicode.com')
    ->get('/posts/1');

2 POST Request

$restService
     ->setEndpoint('https://jsonplaceholder.typicode.com')
     ->post('/posts');

3 PUT Request

$restService
     ->setEndpoint('https://jsonplaceholder.typicode.com')
     ->put('/posts/1',
         [
             'id' => 1,
             'text' => 'Test'
         ]
     );

4 PATCH Request

$restService
     ->setEndpoint('https://jsonplaceholder.typicode.com')
     ->patch('/posts/1',
         [
             'id' => 1,
             'text' => 'Test'
         ]
     );

5 DELETE Request

$restService
     ->setEndpoint('https://jsonplaceholder.typicode.com')
     ->delete('/posts/1');

6 A fire and forget request which is useful in scenario where we fire the request and aren't concerned of the response, it can be done by setting setIsFireAndForget(true)

$restService
     ->setEndpoint('https://jsonplaceholder.typicode.com')
     ->setIsFireAndForget(true)
     ->post('/posts');

7 Request with some custom headers, , it can be done by setting setRequestHeaders(headers array)

$restService
     ->setEndpoint('https://jsonplaceholder.typicode.com')
     ->setRequestHeaders([
         'auth' => 'somevalue'
     ])
     ->post('/posts');

8 Request in which we need the response data which includes status code, headers, body etc, which can be done by setting request method 4th parameter to false

$response = $restService
     ->setEndpoint('https://jsonplaceholder.typicode.com')
     ->get('/posts/1', [], [], false);

 var_dump($response->getHeaders());
 var_dump($response->getBody());

9 PURGE Request (Can be used for cache invalidation Eg:: varnish, nginx cache)

use RestService\RestService;

$restService = new RestService();
$response = $restService
    ->setEndpoint('https://jsonplaceholder.typicode.com')
    ->purge('/posts/1');

License

This project is licensed under the MIT License