Абстрактный класс, содержащий реализацию общих методов обработки запросов для различных версий API.
Class AbstractMindboxClient
- Class name: AbstractMindboxClient
- Namespace: Mindbox\Clients
- This is an abstract class
const API_VERSION = ''
protected string $secretKey
- Visibility: protected
protected \Mindbox\HttpClients\IHttpClient $httpClient
- Visibility: protected
protected \Psr\Log\LoggerInterface $logger
- Visibility: protected
protected \Mindbox\MindboxResponse $lastResponse
- Visibility: protected
protected \Mindbox\MindboxRequest $preparedRequest
- Visibility: protected
protected string $responseType
- Visibility: protected
mixed Mindbox\Clients\AbstractMindboxClient::__construct(string $secretKey, \Mindbox\HttpClients\IHttpClient $httpClient, \Psr\Log\LoggerInterface $logger)
Конструктор AbstractMindboxClient.
- Visibility: public
- $secretKey string - <p>Секретный ключ.</p>
- $httpClient Mindbox\HttpClients\IHttpClient - <p>Экземпляр HTTP клиента.</p>
- $logger Psr\Log\LoggerInterface - <p>Экземпляр логгера.</p>
\Mindbox\Clients\AbstractMindboxClient Mindbox\Clients\AbstractMindboxClient::prepareRequest(string $method, string $operationName, \Mindbox\DTO\DTO|null $body, string $additionalUrl, array $queryParams, boolean $isSync, boolean $addDeviceUUID)
Метод формирует объект запроса и записывает в $preparedRequest.
- Visibility: public
- $method string - <p>HTTP метод.</p>
- $operationName string - <p>Название операции.</p>
- $body Mindbox\DTO\DTO|null - <p>Тело запроса в виде DTO.</p>
- $additionalUrl string - <p>Дополнительный URL запроса.</p>
- $queryParams array - <p>GET параметры запроса.</p>
- $isSync boolean - <p>Флаг: синхронный/асинхронный запрос.</p>
- $addDeviceUUID boolean - <p>Флаг: добавлять ли в запрос DeviceUUID.</p>
\Mindbox\Clients\AbstractMindboxClient Mindbox\Clients\AbstractMindboxClient::setRequest(\Mindbox\MindboxRequest $request)
Сеттер для $preparedRequest.
- Visibility: public
- $request Mindbox\MindboxRequest
\Mindbox\MindboxRequest Mindbox\Clients\AbstractMindboxClient::getRequest()
Геттер для $preparedRequest.
- Visibility: public
\Mindbox\MindboxResponse Mindbox\Clients\AbstractMindboxClient::sendRequest()
Передача подготовленного запроса в HTTP клиент для отправки, обработка ответа.
- Visibility: public
array Mindbox\Clients\AbstractMindboxClient::prepareQueryParams(string $operation, array $queryParams, boolean $addDeviceUUID)
Абстрактный метод по формированию массива GET параметров запроса.
- Visibility: protected
- This method is abstract.
- $operation string - <p>Название операции.</p>
- $queryParams array - <p>GET параметры, переданные пользователем.</p>
- $addDeviceUUID boolean - <p>Флаг: добавлять ли в запрос DeviceUUID.</p>
string Mindbox\Clients\AbstractMindboxClient::prepareUrl(string $additionalUrl, array $queryParams, boolean $isSync)
Абстрактный метод по формированию полного URL запроса.
- Visibility: protected
- This method is abstract.
- $additionalUrl string - <p>Дополнительный URL запроса.</p>
- $queryParams array - <p>GET параметры, переданные пользователем.</p>
- $isSync boolean - <p>Флаг: синхронный/асинхронный запрос.</p>
array Mindbox\Clients\AbstractMindboxClient::prepareHeaders(boolean $addDeviceUUID)
Подготовка массива заголовков запроса.
- Visibility: protected
- $addDeviceUUID boolean - <p>Флаг: добавлять ли в запрос DeviceUUID.</p>
string Mindbox\Clients\AbstractMindboxClient::prepareAuthorizationHeader()
Абстрактный метод по формированию содержимого заголовка Authorization.
- Visibility: protected
- This method is abstract.
string Mindbox\Clients\AbstractMindboxClient::prepareBody(\Mindbox\DTO\DTO|null $body)
Конвертация тела запроса в формат, пригодный для HTTP клиента (json, xml).
- Visibility: protected
- This method is abstract.
- $body Mindbox\DTO\DTO|null - <p>Тело запроса в виде DTO.</p>
\Mindbox\MindboxRequest Mindbox\Clients\AbstractMindboxClient::createRequest(string $url, string $method, string $body, array $headers)
Инициализация экземпляра запроса.
- Visibility: protected
- $url string - <p>Полный URL запроса.</p>
- $method string - <p>Метод запроса.</p>
- $body string - <p>Тело запроса.</p>
- $headers array - <p>Заголовки запроса.</p>
\Mindbox\MindboxResponse Mindbox\Clients\AbstractMindboxClient::parseRawResponse(\Mindbox\MindboxRequest $request, \Mindbox\HttpClients\HttpClientRawResponse $rawResponse)
Парсинг и первичная обработка сырого ответа от HTTP клиента:
- запись результата запроса в лог;
- генерация исключения при наличии ошибки в ответе;
- инициализация экземпляра MindboxResponse, содержащего отформатированные данные ответа.
- Visibility: protected
- $request Mindbox\MindboxRequest - <p>Экземпляр запроса.</p>
- $rawResponse Mindbox\HttpClients\HttpClientRawResponse - <p>Экземпляр сырого ответа.</p>
mixed Mindbox\Clients\AbstractMindboxClient::setLastResponse(\Mindbox\MindboxResponse $response)
Сеттер для $lastResponse.
- Visibility: private
- $response Mindbox\MindboxResponse
\Mindbox\MindboxResponse Mindbox\Clients\AbstractMindboxClient::getLastResponse()
Геттер для $lastResponse.
- Visibility: public
array Mindbox\Clients\AbstractMindboxClient::prepareResponseBody(string $rawBody)
Конвертация тела ответа в массив.
- Visibility: protected
- This method is abstract.
- $rawBody string - <p>Сырое тело ответа.</p>
array Mindbox\Clients\AbstractMindboxClient::prepareContext(\Mindbox\MindboxResponse $response)
Подготовка контекста запроса для логгера.
- Visibility: private
- $response Mindbox\MindboxResponse - <p>Ответ от Mindbox.</p>
mixed Mindbox\Clients\AbstractMindboxClient::setResponseType(string $type)
Сеттер для responseType.
- Visibility: public
- $type string - <p>Имя потомка MindboxResponse.</p>