RestService
, (*1)
Provides an implementation of the Guzzle Command library that uses services specification to describe web services., (*2)
Installation
Require the library with composer:, (*3)
``` bash
$ composer require indragunawan/rest-service, (*4)
Composer will install the library to your project’s `vendor/indragunawan/rest-service` directory.
Usage
-----
```php
<?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