indragunawan / rest-service
Provides an implementation of the Guzzle Command library.
v0.1.0
2016-12-22 04:39 UTC
Requires
- php: ^5.5 || ^7.0
- guzzlehttp/command: ^0.9
- siriusphp/validation: ^2.1
- symfony/config: ^2.7 || ^3.0
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: ^4.0 || ^5.0
This package is auto-updated.
Last update: 2024-12-20 08:23:12 UTC
README
Provides an implementation of the Guzzle Command library that uses services specification to describe web services.
Installation
Require the library with composer:
$ composer require indragunawan/rest-service
Composer will install the library to your project’s vendor/indragunawan/rest-service
directory.
Usage
<?php // httpbin-v1.php return [ 'name' => 'httpbin API', 'endpoint' => '{endpoint}', 'defaults' => [ 'endpoint' => [ 'rule' => 'required | url', // see: http://www.sirius.ro/php/sirius/validation/validation_rules.html 'defaultValue' => 'http://httpbin.org', ], ], 'operations' => [ 'postTest' => [ 'httpMethod' => 'POST', // header, uri, query, body 'requestUri' => '/post', 'request' => [ 'type' => 'map', // map, list 'members' => [ 'Name' => [ 'locationName' => 'name', 'type' => 'string', // string, integer, float, number, boolean, datetime 'rule' => 'required', ], 'CreatedAt' => [ 'type' => 'datetime', 'defaultValue' => 'now', 'format' => 'd M y', ], ], ], 'response' => [ 'members' => [ 'url' => [ 'type' => 'string', 'format' => 'format_%s', ] ] ], ], ], ];
use IndraGunawan\RestService\ServiceClient; $config = [ 'httpClient' => [ // use by GuzzleClient ], 'defaults' => [ // default value for services specification ], ]; $cacheDir = __DIR__.'/../cache'; // optional, default: null $debug = false; // optional, default: false $service = new ServiceClient(__DIR__.'/httpbin-v1.php', $config, $cacheDir, $debug); $result = $service->postTest([ 'Name' => 'My Name', ]); echo $result['url']; // format_http://httpbin.org/post // var_dump($result->toArray());
Todo
- Add more tests.
- Add more documentation.
- Parse Response to Model