bennetgallein/php-restservice

Simple PHP Wrapper class for making REST API calls

1.1.0 2023-02-17 21:23 UTC

This package is auto-updated.

Last update: 2024-04-17 23:52:14 UTC


README

Build Status

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

Note: You can also use RestService::getInstance() to get an Instance of the class to use. This elimiated the calling for new inside your code. This will always return a new Instance. Singleton pattern is currently not supported.

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

Note: to set Authorization header for all requests, you can use setAuthorizationHeader($token). This will require the token to be with the Bearer preceding the actual token.

8 Request in which we request 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