2017 © Pedro Peláez
 

library simple-api-client

Simple API Client with cUrl

image

atog/simple-api-client

Simple API Client with cUrl

  • Monday, May 16, 2016
  • by PascalKleindienst
  • Repository
  • 1 Watchers
  • 0 Stars
  • 76 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

simple-api-client

Latest Version on Packagist GitHub license ![Travis][ico-testing] HHVM [![Quality Score][ico-code-quality]][link-code-quality] Scrutinizer Coverage ![Total Downloads][ico-downloads], (*1)

The simple-api-client library provides an easy way to build wrappers for public REST APIs., (*2)

Install

Via Composer, (*3)

``` bash $ composer require atog/simple-api-client, (*4)


## Usage ### Classes #### Client The `Client` Class contains the basic Informations about the API liek the `$domain`. It has to extend the abstract class `Atog\Api\Client` ```php class Client extends \Atog\Api\Client { protected $domain = 'http://example.com/api/v1'; }

Endpoints

Endpoints provide the functions to query the resources of the API., (*5)

class TestEndpoint extends \Atog\Api\Endpoint
{
    protected $endpoint = 'foo';

    public function find($slug)
    {
        // https://example.com/api/v1/foo/$slug gets called
        $this->respond(
            $this->client->get($this->getEndpointUrl($slug, true))
        ); 
    }
}

Models

The Models are the datastructures of the resources. Attributes can easly be changed with get and set mutators (much like the Eloquent Mutators from Laravel: https://laravel.com/docs/5.2/eloquent-mutators), (*6)

class TestModel extends Model
{
    public function getNameAttribute($value)
    {
        return strtoupper($value);
    }

    public function setFirstNameAttribute($value)
    {
        $this->attributes['first_name'] = strtolower($value);
    }

    public function setContactsAttribute($value)
    {
        $this->attributes['contacts'] = $this->makeCollection($value, Contacts::class);
    }
}

Initialization

The first parameter defines all endpoints you are using. The second provides some options about the models or cUrl. In the models config we can bind a model to an endpoint, (*7)

// new Client(array $endpoints, array $config = [])
$client = new Client(
    [
        TestEndpoint::class
    ],
    [
        'models' => [
            'TestEndpoint' => TestModel::class
        ],
        'curl' => [
            CURLOPT_TIMEOUT => 60
        ]
    ]
);
$foo = $client->testEndpoint->find(1); // GET http://example.com/api/v1/foo/1

Change log

1.1.0

  • added support for query params
  • added helper method to return api reponse

1.0.0

  • Initial Release

Testing

bash $ composer test, (*8)

License

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

The Versions

16/05 2016

dev-master

9999999-dev

Simple API Client with cUrl

  Sources   Download

MIT

The Requires

 

The Development Requires

16/05 2016
19/04 2016

v1.1.0

1.1.0.0

Simple API Client with cUrl

  Sources   Download

MIT

The Requires

 

The Development Requires

16/04 2016

v1.0.0

1.0.0.0

Simple API Client with cUrl

  Sources   Download

MIT

The Requires

 

The Development Requires