indragunawan/rest-service

Provides an implementation of the Guzzle Command library.

Maintainers

πŸ‘ indragunawan

Package info

github.com/indragunawan/rest-service

Issues

pkg:composer/indragunawan/rest-service

Statistics

Installs: 3 148

Dependents: 0

Suggesters: 0

Stars: 5

v0.1.0 2016-12-22 04:39 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 1c759b2ee0cc43dd5e9d7797f204a2e960c0c96f

This package is auto-updated.

Last update: 2026-06-20 11:45:27 UTC


README

πŸ‘ GitHub license
πŸ‘ Travis
πŸ‘ Scrutinizer
πŸ‘ Scrutinizer Coverage
πŸ‘ SensioLabsInsight

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