bennetgallein / php-restservice
Simple PHP Wrapper class for making REST API calls
Requires
- php: >= 7.4
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: ^5
README
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