For connection to API Intime v3.x (intime.ua)
- extensive configuration and modification options;
- error validating in incoming data* or get raw data from API;
- set validation parameters for properties (overriding patterns and conditions in Singleton);
- converting key and value into a single format*;
- no dependency and framework;
- require php 7.2;
- strict type
*Ready not for all methods, under construction.
Use Composer to install this library from Packagist:
vgip/intime
Run the following command from your project directory to add the dependency:
composer require vgip/intime "~1.0"
Alternatively, add the dependency directly to your composer.json
file:
"require": {
"vgip/intime": "~1.0"
}
The classes in the project are structured according to the PSR-4 standard, so you can also use your own autoloader or require the needed files directly in your code.
To use all the methods of the API, you must have a key. You can get it by registering on the site intime.ua. To access only directories, such as a directory of countries, districts, branches and some others you can use the "free" key "10000000000001234567".
<?php
use Vgip\Intime\Api\Config AS IntimeApiConfig;
use Vgip\Intime\Api\Api AS IntimeApi;
$apiKey = '10000000000001234567';
/** Set default configuration */
$intimeApiConfig = new IntimeApiConfig();
/** Set configuration (rewrite defaults) */
$intimeApiConfig->setKey($apiKey);
$intimeApiConfig->setRestRequestType('POST');
/** Connect to API and get all district in region with id 2 */
$intimeApi = new IntimeApi($intimeApiConfig);
$resultConnection = $intimeApi->getLocalityByRegionId(20);
$availableResultVariant = [
1 => 'Raw data as string',
2 => 'Raw data as array',
3 => 'Converted and validated data as array',
4 => 'Converted and validated data as object',
];
/** Set the format and actions for the received data */
$resultVariant = 3;
/** Limitations - under construction
*
* ResultConnection methods getAnswerArray() (3) and getAnswer() (4) are available only
* for IntimeApi directories (methods):
*
* getBranch()
* getCountry()
* getDistrict()
* getLocality()
* getRegion()
* and similar.
*/
if (1 === $resultVariant) {
$dataRaw = $resultConnection->getAnswerRaw();
$resData = $dataRaw;
} elseif (2 === $resultVariant) {
$dataArrayRaw = $resultConnection->getAnswerArrayRaw();
$resData = $dataArrayRaw;
} elseif (3 === $resultVariant) {
$data = $resultConnection->getAnswerArray();
$resData = $data;
} elseif (4 === $resultVariant) {
$dataObj = $resultConnection->getAnswer();
$resData = $dataObj;
}
/** Error view if present */
$error = $resultConnection->getError();
$errorCounter = $error->getErrorCounter();
if ($errorCounter > 0) {
print_r($error->getErrorAll());
}
print_r($resData);
This project documentation: github wiki
Be careful - API server documentation v3.1 contains many errors: server documentation
Versioning: MAJOR.MINOR.PATCH version number format.
Codestyle: PSR12
Read documentation, direct your pull request and ask questions.