PHP Classes


Recommend this page to a friend!
  Classes of Andre Roque Filipe  >  PHP API Caller  >  >  Download  
Role: Documentation
Content type: text/plain
Description: New version - 0.2.0
Class: PHP API Caller
Send requests to different Web services APIs
Author: By
Last change: Update of
Date: 10 months ago
Size: 3,816 bytes


Class file image Download
# APIcaller 

[![Downloads with Composer](](
[![SensioLabs Insight](](
[![ReiDuKuduro @gittip](](

APIcaller is a class that helps you build API wrappers.  
You don't have to worry about building URLs, or even about parsing the requested data.

## How to use

You will have to extend the ```Client``` class and the ```Caller``` class, the ```Client``` will handle all the 
configuration to use on the requests and the ```Caller``` will be used as the interface to interact with the API.

use MASNathan\APICaller\Client;
use MASNathan\APICaller\Caller;

class MyPackageClient extends Client
     * Here you can set the default headers and parameters on a global scope
    public function __construct($ip = null)
            'User-Agent' => 'PHP APICaller SDK',
            'Accept'     => 'application/json',
            'Token'      => '123456',
            'ip' => $ip ?: '',

     * Returns the API Endpoint
     * @return string
    public function getEndpoint()
        return '';

class MyPackageCaller extends Caller
    public function requestSomething($foo, $bar)
        $params = [
            'foo' => $foo,
            'bar' => $bar,

        // this will result in this url{$ip}&foo={$foo}&bar={$bar}
        $response = $this->client->get('some-method.json', $params);

        $data = $this->handleResponseContent($response, 'json');

        // Do something with your data

        return $data;

Well, this is how you can start creating your class, now, lets make some calls!

$client = new MyPackageClient('');
$caller = new MyPackageCaller($client);

$result = $caller->requestSomething(13, 37);


This will call the following url:``````.

## Installation

To install the SDK, you will need to be using [Composer]( in your project. If you don't have composer 
installed check this page and follow the [installation steps](

This library is not hard coupled to Guzzle or any other library that sends HTTP messages. 
It uses an abstraction called [HTTPlug]( 
This will give you the flexibility to choose what PSR-7 implementation and HTTP client to use.

To get started ASAP you should run the following command:

# Add APIcaller as a dependency
$ composer require masnathan/api-caller php-http/curl-client guzzlehttp/psr7

## Why do I need to require all those packages?

APICaller depends on the virtual package [php-http/client-implementation]( 
which requires to you install an adapter, but we do not care which one. 
That is an implementation detail in your application. 
We also need a PSR-7 implementation and a message factory.

You don't have to use the [php-http/curl-client]( if you don't want to. 
Read more about the virtual packages, why this is a good idea and about the flexibility it brings at the [HTTPlug docs](

# License

This library is under the MIT License, see the complete license [here](LICENSE)
For more information send a message to info at phpclasses dot org.