Skip to content

pbmengine/php-restclient

Repository files navigation

Generic PHP client to access REST APIs

Latest Version on Packagist Build Status Quality Score Total Downloads

This publication describes a generic api rest client suitable for all PHP packages.

Installation

You can install the package via composer:

composer require pbmengine/php-restclient

Basic Usage

use Pbmengine\Restclient\HttpClient;

$client = new HttpClient; 

// or

$client = new HttpClient(\GuzzleHttp\Client, 'https://example.com/v1', ['timeout' => 30]); 

$response = $client->get('users');
$response = $client->jsonPayload(['id' : 1])->post('users');

Client Methods

$client->baseUrl('https://example.com/v1');

$client->options(['http_errors' => false, 'timeout' => 30]);
$client->option('http_errors', false);

$client->authorizationBearer('token');
$client->authorizationHttp('username', 'password');
$client->authorizationDigest('username', 'password');

$client->headers(['API-KEY' => 30]);
$client->header('API-KEY', 30);

$client->queryParams(['embed' => 'resource']);
$client->queryParam('embed', 'resource');

$client->jsonPayload([]);
$client->multipartPayload([]);
$client->formParamsPayload([]);

$client->getHeaders();
$client->getQueryParams();
$client->getBody();
$client->getRequestUrl('endpoint');

$response = $client->get('users');
$response = $client->post('users');
$response = $client->put('users/12');
$response = $client->delete('users/12');
$response = $client->patch('users/12');
$response = $client->head('users/12');

Response Methods


$response->statusCode(); // 200
$response->headers(); // []
$response->raw(); // ResponseInterface
$response->raw()->getHeaders(); // []
$response->isValid(); // true
$response->isServerError(); // false
$response->isClientError(); // false
$response->content(); // StdClass
$response->contentAsArray(); // Array
$response->contentAsJson(); // Json String
$response->contentAsCollection(); // Illuminate Collection

Use Case several requests


$client = (new HttpClient)
    ->baseUrl('https://example.com')
    ->authorizationBearer('your token');

// get all users    
$response = $client
    ->queryParam('embed', 'client');
    ->get('users'); 

// update user
$response = $client
    ->jsonPayload(['name' => 'John'])
    ->put('users/' . $response->content()->data->id);

// set new Bearer
$client->authorizationBearer('another token');

// delete user
$response = $client->delete('users/id');

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email systems@personal-business-machine.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Generic PHP rest client

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages