PHP code example of samsonasik / apigility-consumer
1. Go to this page and download the library: Download samsonasik/apigility-consumer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
samsonasik / apigility-consumer example snippets
use Laminas\Http\Client as HttpClient;
return [
'apigility-consumer' => [
'api-host-url' => 'http://api.host.com',
// null for default or array of configuration listed at https://docs.zendframework.com/zend-http/client/intro/#configuration
'http_client_options' => null,
// for oauth
'oauth' => [
//default selected client
'grant_type' => 'password', // or client_credentials
'client_id' => 'foo',
'client_secret' => 'foo_s3cret',
// multiple clients to be selected
'clients' => [
'foo' => [ // foo is client_id
'grant_type' => 'password', // or client_credentials
'client_secret' => 'foo_s3cret',
],
'bar' => [ // bar is client_id
'grant_type' => 'password', // or client_credentials
'client_secret' => 'bar_s3cret',
],
],
],
// for basic and or digest
'auth' => [
// default client
HttpClient::AUTH_BASIC => [
'username' => 'foo',
'password' => 'foo_s3cret'
],
HttpClient::AUTH_DIGEST => [
'username' => 'foo',
'password' => 'foo_s3cret'
],
// multiple clients to be selected
'clients' => [
'foo' => [ // foo is key represent just like "client_id" to ease switch per-client config
HttpClient::AUTH_BASIC => [
'username' => 'foo',
'password' => 'foo_s3cret'
],
HttpClient::AUTH_DIGEST => [
'username' => 'foo',
'password' => 'foo_s3cret'
],
],
'bar' => [ // bar is key represent just like "client_id" to ease switch per-client config
HttpClient::AUTH_BASIC => [
'username' => 'bar',
'password' => 'bar_s3cret'
],
HttpClient::AUTH_DIGEST => [
'username' => 'bar',
'password' => 'bar_s3cret'
],
],
],
],
],
];
$clientResult = $client->withClient('bar') // bar is "client_id" defined in clients in oauth config
->callAPI($data, $timeout);
$clientResult = $client->withClient('bar') // bar is "client_id" defined in clients in auth config
->callAPI($data, $timeout);
$clientResultDefault = $client->resetClient()
->callAPI($data, $timeout);
use ApigilityConsumer\Service\ClientService;
$data = [
'api-route-segment' => '/api',
'form-request-method' => 'POST',
'form-data' => [
// fields that will be used as raw json to be sent
'foo' => 'fooValue',
],
// token type and access token if
use Laminas\Http\Client as HttpClient;
$clientResult = $client->withHttpAuthType(HttpClient::AUTH_BASIC)
->callAPI($data, $timeout);
// OR
$clientResult = $client->withHttpAuthType(HttpClient::AUTH_DIGEST)
->callAPI($data, $timeout);
use Laminas\Http\Client as HttpClient;
$data = [
'api-route-segment' => '/api',
'form-request-method' => 'POST',
'form-data' => [
// fields that will be used as raw json to be sent
'foo' => 'fooValue',
],
'auth' => [
HttpClient::AUTH_BASIC => [
'username' => 'foo',
'password' => 'foo_s3cret'
],
HttpClient::AUTH_DIGEST => [
'username' => 'foo',
'password' => 'foo_s3cret'
],
],
];
$clientResult = $client->withHttpAuthType(HttpClient::AUTH_BASIC)
->callAPI($data, $timeout);
// OR
$clientResult = $client->withHttpAuthType(HttpClient::AUTH_DIGEST)
->callAPI($data, $timeout);
$clientResult = $client->withClient('bar') // bar is "client_id" defined in clients in auth config
->withHttpAuthType(HttpClient::AUTH_BASIC)
->callAPI($data, $timeout);
$clientResult = $client->withClient('bar') // bar is "client_id" defined in clients in auth config
->withHttpAuthType(HttpClient::AUTH_BASIC)
->callAPI($data, $timeout);
$clientResultDefault = $client->resetClient()
->callAPI($data, $timeout);
$clientResultWithBasicAuth = $client->withHttpAuthType(HttpClient::AUTH_BASIC)
->callAPI($data1, $timeout);
$clientResultWithDigestAuth = $client->withHttpAuthType(HttpClient::AUTH_DIGEST)
->callAPI($data2, $timeout);
// RESET IT TO NORMAL WITHOUT HTTP AUTHENTICATION
$clientResultWithoutHttpAuth = $client->resetHttpAuthType()
->callAPI($data3, $timeout);