Входящие запросы
Раздел «Сервисы → API-платформа → Входящие запросы» содержит три списка:
- «Список запросов» — история обращений с пользователем, IP-адресом, методом и статусом.
- «Входящие данные» — сохранённые параметры и заголовки входящих запросов.
- «Исходящие данные» — сохранённые ответы API и их заголовки.
Для просмотра всех списков и карточки требуется право чтения входящих запросов, для удаления записей — также право изменения на вкладке «Доступ».
Состав истории
Связь истории и данных:
REQUEST_ID
├─ Основная запись запроса
│ ├─ Входящие данные в базе → карточка запроса
│ └─ Исходящие данные в базе → карточка запроса
└─ Файлы: native.api/REQUEST_RECEIVED/{REQUEST_ID}/
├─ request.json
└─ response.json или response.xmlДанные и файлы создаются только при включённых направлениях записи.
Поля записи
| Поле | Что хранится |
|---|---|
| ID | Идентификатор записи в базе |
| Дата запроса | Время постановки записи в историю после отправки ответа |
| Идентификатор запроса | Идентификатор для поиска запроса и связанных с ним данных |
| Пользователь | Пользователь, авторизованный в API; без авторизации — «Неавторизован» |
| Метод | HTTP-метод запроса |
| Статус | «Обработан» или «Отклонен» — результат прохождения этапа проверки лимита |
| IP-адрес | Адрес отправителя |
Путь, параметры, заголовки и ответ хранятся отдельно, если включена запись входящих и исходящих данных. HTTP-код ответа и длительность обработки отдельными полями истории не сохраняются.
Когда появляется запись
Включите «Собирать входящие запросы» на вкладке «Аналитика».
История будет пополняться независимо от лимитов и выбранных для статистики HTTP-методов:
в том числе при отказах, OPTIONS и досрочных ответах обработчиков событий.
При действующем для клиента лимите основная запись создаётся и с выключенным сбором. Если выключены и сбор, и лимит, запись не создаётся. Один запрос создаёт одну запись истории. До успешной API-авторизации запрос записывается без пользователя и учитывается по IP-адресу.
Запись может появиться после получения ответа клиентом. При аварийном завершении обработки она может не сохраниться. Ошибки, возникшие до запуска API, в историю не попадают.
Статусы запросов
- «Обработан» (
PROCESSED) — запрос прошёл этап проверки лимита, в том числе при отключённом лимите. Последующая ошибка параметров или контроллера не меняет этот статус. - «Отклонен» (
REJECTED) — запрос превысил лимит или завершился до этого этапа. Такой статус получают и успешныйOPTIONS, и досрочный ответ события до проверки лимита.
Статус показывает участие в расчёте лимитов, а не успешность HTTP-ответа. Для разбора отказов используйте «Журнал безопасности», для ошибок и других событий — «События модуля».
Поиск запросов
В основном списке используйте фильтры по идентификатору запроса, пользователю, IP-адресу, HTTP-методу, статусу и дате. В поле пользователя можно указать ID или данные для поиска; значение «Неавторизован» отбирает обращения без API-авторизации.
Строка поиска основного списка ищет IP-адрес, HTTP-метод или значение «Неавторизован». Для разбора превышения лимита выберите пользователя либо IP-адрес, период и статус «Обработан».
В списках данных доступны дата и REQUEST_ID; для входящих данных — также URI и Content-Type,
для исходящих — формат ответа. Строка поиска этих двух списков ищет точный REQUEST_ID.
Заголовки и содержимое не включаются в колонки, фильтры, сортировку и экспорт списков.
Карточка запроса
Нажмите ID или идентификатор запроса в основном списке. Карточка содержит три вкладки: общие сведения, входящие данные и исходящие данные. Все поля доступны только для чтения. В обоих направлениях сначала показаны заголовки, затем данные; HTML и XML выводятся как текст.
В списках данных ссылка по REQUEST_ID открывает карточку основного запроса,
а ID строки — соответствующую вкладку входящих или исходящих данных.
Входящие данные
Сохраняются данные, полученные до изменений пользовательскими обработчиками:
URI— путь запроса без GET-параметров.CONTENT_TYPE— значение входящего Content-Type; если заголовка нет, поле пустое.HEADER— заголовки в формате JSON.DATA— JSON сQUERY,POST,JSONиFILES: параметры URL, поля формы, разобранные JSON-параметры и метаданные файлов.
Исходное тело запроса отдельно не копируется. Для multipart сохраняются поля и метаданные, без содержимого файлов и временных путей на сервере.
Исходящие данные
Сохраняется итоговый ответ, отправленный клиенту:
формат json/xml, заголовки в JSON и тело ответа после маскирования.
Формат определяется по Content-Type ответа; для нестандартного формата поле пустое.
Для HEAD и статусов, не допускающих тело, содержимое пустое.
Учитываются заголовки ответа модуля и отправленные PHP-заголовки. Заголовки, добавленные внешним прокси или веб-сервером, модулю недоступны. Правила маскирования данных одинаковы для базы и файлов.
Если данных нет
Карточка читает данные только из базы. При записи исключительно в файл вкладка сообщает об отсутствии данных; искать их нужно в файловом журнале запроса. Проверьте включение сбора и нужного направления записи в момент выполнения запроса: старые данные не восстанавливаются задним числом.
Связь с ограничениями
Подсчёт обращений
Лимиты задаются на вкладке «Безопасность». Учитываются только записи со статусом «Обработан»: для авторизованных запросов — по пользователю, для неавторизованных — по IP-адресу. При положительном периоде учитываются записи за этот период; при периоде 0 — вся сохранённая история с этим статусом для выбранного признака.
HTTP-методы не разделяются на отдельные лимиты. Записи «Отклонен», включая OPTIONS
и ответы до проверки лимита, в подсчёт не входят. Фильтр списка не влияет на расчёт.
Отличие от аналитики
| Данные | Назначение | Управление |
|---|---|---|
| Список запросов | История обращений и расчёт лимитов по статусу «Обработан» | Флаг сбора или действующий лимит |
| Входящие и исходящие данные | Разбор параметров, заголовков и ответа | Сбор запросов и отдельные флаги записи в базу или файлы |
| Аналитика | Счётчики HTTP-методов на дашборде | Выбор методов; «Очистить статистику» обнуляет счётчики |
| События модуля | Причины ошибок и аудит событий | Отдельные флаги системного журнала и файлов |
Очистка счётчиков не удаляет историю и данные запросов. Удаление истории не обнуляет счётчики.
Удаление записей
В основном списке можно удалить одну запись через меню строки, несколько выделенных или все записи по текущему фильтру. Вместе с запросом удаляются связанные входящие и исходящие данные в базе. Файлы запроса сохраняются.
Удаление обработанных запросов влияет на лимит: обращения перестают участвовать в подсчёте, и у пользователя или IP-адреса может снова появиться возможность выполнять запросы. Проверяйте фильтр перед массовым удалением. Счётчики аналитики и системный журнал сохраняются.
При удалении модуля очистка входящих запросов удаляет историю и сохранённые в базе данные запросов и ответов. Файловые журналы очищаются отдельной опцией.