Skip to content

Коллектор HTTP-клиента

Захватывает исходящие PSR-18 HTTP-запросы и ответы с замерами времени и кодами состояния.

Панель коллектора HTTP-клиента

Собираемые данные

ПолеОписание
methodHTTP-метод (GET, POST и т.д.)
uriURI запроса
headersЗаголовки запроса
lineФайл и строка исходного кода вызова HTTP
responseStatusКод состояния HTTP-ответа
responseRawСырое тело ответа
totalTimeОбщее время запроса/ответа в секундах

Схема данных

json
[
    {
        "startTime": 1711878000.100,
        "endTime": 1711878000.350,
        "totalTime": 0.25,
        "method": "GET",
        "uri": "https://api.example.com/users/42",
        "headers": {"Authorization": "Bearer ***"},
        "line": "/app/src/ApiClient.php:55",
        "responseRaw": "{\"id\": 42, \"name\": \"John\"}",
        "responseStatus": 200
    }
]

Сводка (отображается в списке отладочных записей):

json
{
    "http": {
        "count": 3,
        "totalTime": 0.75
    }
}

Контракт

php
use AppDevPanel\Kernel\Collector\HttpClientCollector;

// Start collection
$collector->collect(
    request: $psrRequest,
    startTime: microtime(true),
    line: '/app/src/ApiClient.php:55',
    uniqueId: 'req-1',
);

// Complete with response
$collector->collectTotalTime(
    response: $psrResponse,
    endTime: microtime(true),
    uniqueId: 'req-1',
);

Как это работает

Коллектор получает данные от HttpClientInterfaceProxyAppDevPanel\Kernel\Collector\HttpClientInterfaceProxyDecorator proxy for Http Client Interface. Intercepts calls and forwards data to collectors.final Kernel · class · implements ClientInterface — декоратора PSR-18 ClientInterfacePsr\Http\Client\ClientInterfacePSR-18 HTTP Client Interface. Sends PSR-7 requests and returns PSR-7 responses.PSR-18 · interface. Каждый вызов $client->sendRequest($request) автоматически перехватывается, замеряется по времени и записывается.

Панель отладки

  • Список запросов — все исходящие HTTP-вызовы с методом, URL, статусом и временем
  • Детали запроса/ответа — раскрываемый просмотр с заголовками и телом
  • Бейджи статусов — цветовая кодировка по статусу ответа (2xx зелёный, 4xx оранжевый, 5xx красный)
  • Разбивка по времени — длительность каждого запроса

Выпущено под лицензией MIT.