There is no license information available for the latest version (1.0.1) of this package.

Абстрактный класс для работы с API

1.0.1 2017-10-04 18:00 UTC

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().