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: 7 days 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. ```php 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) { $this->setDefaultHeaders([ 'User-Agent' => 'PHP APICaller SDK', 'Accept' => 'application/json', 'Token' => '123456', ]); $this->setDefaultParameters([ '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! ```php $client = new MyPackageClient(''); $caller = new MyPackageCaller($client); $result = $caller->requestSomething(13, 37); var_dump($result); ``` 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: ```sh # 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)