НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
115 of 152 menu

Таблица oc_api_history

Таблица oc_api_history служит для логирования всех вызовов к API интерфейсу OpenCart. Это критически важная таблица для аудита и отладки взаимодействия с внешними системами, мобильными приложениями и другими сервисами, использующими API магазина.

Поля

Поле Тип данных Описание
api_history_id int Уникальный идентификатор записи в журнале API.
api_id int Внешний ключ, который связывает запись с конкретным API ключом. Ссылается на таблицу oc_api.
route varchar(64) Маршрут (endpoint) API, к которому был выполнен запрос (например, api/account/login или api/order/history).
method varchar(6) HTTP-метод запроса: GET, POST, PUT, DELETE, PATCH.
request text Полный текст запроса, отправленного к API. Может содержать заголовки, параметры и тело запроса.
response text Ответ, который вернул API. Содержит данные в формате JSON, либо информацию об ошибке.
ip varchar(40) IP-адрес, с которого был выполнен запрос к API.
date_added datetime Дата и время добавления записи в журнал (момент выполнения запроса).

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

При каждом обращении к любому endpoint API OpenCart (например, для авторизации, получения списка товаров или создания заказа) система создает запись в таблице oc_api_history. Это происходит через механизм событий (event system) OpenCart.

Перед выполнением основного кода контроллера API (preAction) система фиксирует данные входящего запроса: route, method, request и ip. После выполнения кода и формирования ответа система дополняет запись данными из response.

Поле api_id связывает запись с конкретным API пользователем из таблицы oc_api, что позволяет отслеживать, какое приложение или пользователь совершил вызов.

Ведение такого журнала особенно важно для:

  • Отладки проблем интеграции с внешними системами
  • Анализа производительности API
  • Мониторинга подозрительной активности и безопасности
  • Аудита действий, выполненных через API

Важно отметить, что таблица может очень быстро расти при активном использовании API, поэтому рекомендуется настроить ее периодическую очистку или архивацию старых записей.

Пример SQL-запроса

Получить последние 10 записей журнала API для конкретного пользователя API можно следующим запросом:

SELECT ah.*, a.username, a.name as api_name FROM oc_api_history ah LEFT JOIN oc_api a ON (ah.api_id = a.api_id) WHERE ah.api_id = 1 ORDER BY ah.date_added DESC LIMIT 10;

Смотрите также

  • таблицу oc_api,
    которая хранит учетные записи API пользователей
  • таблицу oc_api_session,
    которая хранит активные сессии API
  • таблицу oc_customer,
    которая содержит данные клиентов магазина
  • таблицу oc_order,
    которая хранит информацию о заказах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить