cognetif/ez-api

This package is abandoned and no longer maintained. No replacement package was suggested.

EZ API - Starting point for API service calls

v1.3.0 2021-09-16 16:38 UTC

This package is auto-updated.

Last update: 2021-09-21 11:50:22 UTC


README

This library is useful to help abstract API calls, removing the need re-implement authentication logic and pagination logic into API calls.

Installation

Install via composer with:

$ composer require cognetif/ez-api

Usage

  1. Create a new class that extends Cognetf\EzApi\ApiClient.
  2. Implement your header or authorization logic in your class constructor after the call to parent::__construct(Client $client)
  3. Use the [GET, POST, DELETE, PUT, PATCH] methods to retrieve api results and perform calls such as:
    use GuzzleHttp\Client;
    use Cognetif\EzApi\ApiClient;
    

class MyClient extends ApiClient {

public function __construct(Client $client) {
    
    parent::__construct($client);        
    
    $this->setBaseUrl('https://mydomain.com/api/')
         ->addHeader('Authorization', 'Bearer apkikey_hash')
         ->addHeader('Content-Type', 'application/json');

}

}

$myClient = new MyClient(new Client); $results = $myClient->get('/api/endpoint', ['param' => 'value']);


## Result Return 
results are returned as an array with the following contract:

$results = [

'data' => [
    //..Api Request Body
], 
'error' => false

];


## Custom return logic
You can override how you class handles the returned data from the response by overriding the following function :
`ApiClient::handleResponse(ResponseInterface $response): array`

## Error message
If the api call returns a non-successful response code, the reason phrase will be available within the result array:

$results = [

'data' => [
    //..Api Request Body
], 
'error' => true,
'message' => '403 Forbidden'

];


## Running Tests
You can run tests via PhpUnit with the following command: `$ ./phpunit`.

There is a test report built to visualize the results and code coverage in `/Tests/Report`. Simply open the `index.html` or `dashboard.html` file in your local browser.