Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bennetgallein/php-restservice

Simple PHP wrapper class to make REST API calls
https://github.com/bennetgallein/php-restservice

Last synced: 16 days ago
JSON representation

Simple PHP wrapper class to make REST API calls

Awesome Lists containing this project

README

        

PHP HTTP REST Client
=======================
[![Build Status](https://travis-ci.org/abhilashpujari/php-restservice.svg?branch=master)](https://travis-ci.org/abhilashpujari/php-restservice)

Simple PHP Client library that makes it easy to make REST API calls.
It uses [Guzzle Client](http://docs.guzzlephp.org/en/stable/) as a dependencies

## Installation

The recommended way to install this library is through
[Composer](http://getcomposer.org).

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

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

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

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

```php
require 'vendor/autoload.php';
```

You can then later update this library using composer:

```bash
php composer.phar update
```

## Usage

1 GET Request

```php
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

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

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

4 PATCH Request

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

5 DELETE Request

```php
$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)

```php
$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)

```php
$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

```php
$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)

```php
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