Я делаю HTTP-запрос, получаю ответ и декодирую его в ассоциативный массив, например:
$httpClient = new Client();
$httpResponse = $httpClient->get($this->api->getEndpoint(), [
'headers' => [
'Content-Type' => 'application/json'
],
]);
if ($httpResponse->getStatusCode() === Response::HTTP_OK) {
$decodedData = json_decode($httpResponse->getBody(), true);
if (!isset($decodedData['message'])) {
Log::warning("There is no 'message' array in response body");
return false;
}
Затем я передаю conten c из $ decodedData в функцию проверки, например:
$items = $decodedData['message'];
foreach ($items as $item) {
if (!$item)
continue;
if (!$this->validateItem($item))
continue;
...
}
Функция проверки выглядит следующим образом:
private function validateItem(array $data)
{
$validator = Validator::make($data, [
'id' => 'required|integer',
'title' => 'required|string|max:255',
]);
if ($validator->fails()) {
Log::warning("Current item has not passed validation. Validation error: " . $validator->errors()->first());
return false;
}
return true;
}
Как мне регистрировать информацию о плохих объектах, чтобы я мог проверить, что с ними не так в будущем?