termiyanc / api
Абстрактный класс для работы с API
Requires
- php: >=5.5.0
- ext-curl: *
This package is not auto-updated.
Last update: 2025-06-12 02:11:27 UTC
README
Требует PHP >= 5.5.0 с подключенным расширением curl.
Для работы необходимо определить производный неабстрактный класс.
В свойстве $methods
в производном классе необходимо описать методы обращения к API в формате:
[
// Имя метода
'method' => [
// Url, переопределяющий url в общей конфигурации
'url' => string,
// Путь, прибавляемый к url
'url_suffix' => string,
// Код ответа при успехе
'success_response_code' => int
// Параметры метода
'params' => [
// Имя параметра
'param' => [
// Обязательный ли параметр. По умолчанию параметр не обязателен
'required' => bool,
// Значение по умолчанию, переопределяющее значение по умолчанию в общей конфигурации.
// Рассматривается, если параметр является обязательным и не определен
'default' => mixed
]
]
]
]
Чтобы обратиться к методу API, необходимо произвести статический вызов className::method([array $params], [bool $checkResponseCode])
,
где:
className — имя производного класса,
method — название метода в свойстве $methods
производного класса,
$params — массив параметров вызываемого метода (необязательно),
$checkResponseCode — только ли проверить код ответа (необязательно, по умолчанию — false).
Для производного класса может быть определена конфигурация в свойстве className::$config
формата:
[
// Url для запросов к API
'url' => string,
// Код ответа при успехе
'success_response_code' => int
// Значения параметров методов API по умолчанию
'params_defaults' => array,
// Общие параметры методов API
'common_params' => array,
]
В производном классе может быть описан метод selfInit():void
с собственными действиями при инициализации.
В производном классе может быть описан метод curlParams():array
, возвращающий собственные параметры curl.
Обращение к API производится методом POST, параметры передаются в формате JSON, передается соответствующий заголовок Content-Type. При обращении по https устанавливаются параметры curl:
[
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0
]
В производном классе может быть определен метод className::postProcess(ApiResult $result)
, в который передается результат выполнения запроса.
В реультате обращения к методу API возвращается:
экземпляр класса ApiResult, содержащий поля:
- class — контекстный класс,
- error — сообщение об ошибке,
- calledApiMethod — вызванный метод API,
- requestUrl — url запроса,
- requestParams — параметры запроса,
- requestSuccess — успешно ли прошел запрос,
- responseCode — код ответа,
- requestResult — результат запроса;
или булево значение, соответствует ли код ответа определенному коду ответа при успехе, если при вызове метода был определен параметр
$checkResponseCode
;или результат работы метода
className::postProcess()
.