/jacky

:cow2: HTTP JSON API Client for Laravel & Lumen

Primary LanguagePHPMIT LicenseMIT

Jacky

Packagist Software License Build Status Quality Score SensioLabsInsight

JSON API Client for Laravel and Lumen. It's basically just a Guzzle wrapper for JSON, because Guzzle does not care about JSON anymore. And you can configure your endpoints once and for all in a configuration file, could be useful if you work with different services.

Install

Install via composer

composer require rap2hpoutre/jacky

Add Service Provider to config/app.php in providers section

Rap2hpoutre\Jacky\ServiceProvider::class,

Then add the facade in aliases section (optional)

'Jacky' => Rap2hpoutre\Jacky\Facade::class,

Publish configuration

php artisan vendor:publish

Usage

Simple example

Let's say foo API returns this on GET /users/1:

{
  "data": [{
    "name": "John Doe",
    "email": "john@example.com"
  }]
}

You may get the user like this:

$user_name = Jacky::get('foo', '/users/1')->data->first()->name;

Not found example

Let's say foo API returns this on GET /users/2 not found:

{
  "errors": [{
    "status": "404",
    "title":  "User not found :/"
  }]
}

You may display error title like this:

use Rap2hpoutre\Jacky\Exception\Http404Exception;

try {
    $user = Jacky::get('foo', '/users/1');
} catch (Http404Exception $e) {
    echo $e->errors->first()->title;
}

Configuration

You can learn more about configuration here