Таблица oc_api
Таблица oc_api хранит информацию о ключах доступа и настройках API, которые используются для авторизации внешних запросов к системе OpenCart. API позволяет другим программам (например, мобильным приложениям, CRM-системам, сторонним сервисам) получать и изменять данные магазина (товары, заказы, клиентов) в автоматическом режиме.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
api_id |
int |
Уникальный идентификатор (первичный ключ) записи API. |
name |
varchar(64) |
Название или описание API-пользователя. Задается для удобства идентификации (например, "Мобильное приложение", "Интеграция с 1С"). |
key |
text |
Секретный ключ API. Это длинная случайная строка, которая используется для подписи запросов и авторизации. Ключ должен передаваться в каждом запросе к API. |
status |
tinyint(1) |
Статус API-доступа:
|
date_added |
datetime |
Дата и время создания записи API. |
date_modified |
datetime |
Дата и время последнего изменения записи API. |
Как это работает
Перед тем как внешняя система сможет делать запросы к API OpenCart, в панели администратора необходимо создать учетную запись API (Настройки > Пользователи > API). При создании генерируется уникальный секретный ключ (key), который записывается в эту таблицу.
Для выполнения любого запроса к API (например, /api/order/history&order_id=123) внешнее приложение должно передать в заголовках запроса или параметрах этот ключ. Система OpenCart ищет переданный ключ в таблице oc_api. Если ключ найден и запись активна (status = 1), запрос считается авторизованным и выполняется. В противном случае возвращается ошибка доступа.
Разные ключи API можно создавать для разных сервисов и приложений. Это позволяет независимо управлять доступом (включать/отключать) для каждой интеграции, а также отслеживать, какое приложение совершило тот или иной запрос.
Важно отметить, что сама таблица oc_api отвечает только за аутентификацию (проверку подлинности ключа). Настройки прав доступа (разрешения на чтение/запись для разных сущностей: товары, заказы и т.д.) для данного API задаются в панели администратора и хранятся в других таблицах системы (например, oc_api_session, oc_api_ip).
Пример SQL-запроса
Выбрать все активные ключи API можно следующим запросом:
SELECT api_id, name, `key`, date_added
FROM oc_api
WHERE status = 1;
Проверить существование и валидность конкретного ключа:
SELECT api_id, name
FROM oc_api
WHERE `key` = 'your_long_secret_api_key_here'
AND status = 1;
Смотрите также
-
таблицу
oc_api_session,
которая хранит активные сессии API -
таблицу
oc_api_ip,
которая содержит IP-адреса, разрешенные для доступа к API -
таблицу
oc_user,
которая хранит учетные записи администраторов