- Все API Retail Rocket доступны по протоколу HTTP/2;
- Если для вызова метода требуется передача данных в теле запроса, то система ожидает их в формате JSON и соответствующего http-заголовка: content-type: application/json;
- Все данные, которые возвращаются в результате вызова, возвращаются в формате JSON;
- Статусы HTTP-ответа имеют значение. Возможные статусы метода описываются в его документации;
- В целях оптимизации скорости подключения и передачи данных соединение следует кешировать;
- При отправке событий ответ ждать не нужно, исключение составляет лишь пакетная загрузка событий, детали которой описаны в соответствующем разделе;
- Важно: при использовании методов API в реальных приложениях/системах, обязательно учитывать возможность отказа API. Необходимо запрашивать данные асинхронно, с максимальным временем ожидания в 500мс. Обязательно предусматривать fallback-сценарий, в котором приложение/система должны продолжить нормальную работу, даже если метод API не ответил или ответил с ошибкой;
Идентификатор интернет-магазина
Для идентификации интернет-магазина в API используется параметр partnerId. Значение параметра выдается при регистрации в системе Retail Rocket и может быть получено либо запросом к аккаунт-менеджеру Retail Rocket, либо обращением в службу поддержки ([email protected]), либо в личном кабинете Retail Rocket.
Значение является публичным и может быть использовано в открытом виде.
Авторизация
Доступ к некоторым методам API ограничен, и для их использования требуется передавать параметр apiKey, значение которого можно получить у сотрудника Retail Rocket.
Значение apiKey является секретным, не должно передаваться третьим лицам или храниться на клиентской стороне (на сайте или в мобильном приложении).
В случае утечки значения apiKey следует запросить у аккаунт-менеджера новое. Старое значение перестанет действовать.
Рекомендация
Хранить значение apiKey в хранилище, в котором его можно изменить без необходимости выпускать новую версию сайта/приложения.
Метка времени вызова
Для корректной работы многих продуктов Retail Rocket необходимо знать время, когда метод был вызван, для этого в некоторых методах API предусмотрен опциональный параметр timestamp, в значении которого система Retail Rocket ожидает дату и время в формате ISO 8601.
Если опциональный параметр не задан, то в качестве временной метки будет использовано серверное время Retail Rocket на момент вызова.
Товарная база
Если в методе API требуются товарные данные (например, идентификатор товара/склада и т.д.), значение таких параметров должно совпадать со значениями, переданными с товарной базой в Retail Rocket/
Товарная база в Retail Rocket может быть передана двумя способами:
- С помощью YML-фида;
- С помощью product API трекера, дополнительно устанавливаемого на страницу карточки товара;
Сведения о товаре
Если в методе API требуются товарные данные (например, идентификатор товара/склада и т.д.), значение таких параметров должно совпадать со значениями, которые содержит товарная база, переданная в Retail Rocket.
Коды ответов
Код ответ | Название | Описание |
---|---|---|
200 | ОК | Запрос принят |
204 | NoContent | По запросу ничего не найдено |
400 | BadRequest | Ошибка в запросе, необходимо проверить правильность построения запроса |
401 | Unauthorized | Ошибка авторизации, необходимо проверить корректность partnerId, apiKey |
403 | Forbidden | Доступ запрещен |
404 | NotFound | Запрошенный ресурс не найден, необходимо проверить правильность URL |
429 | TooManyRequests | Превышение лимита запросов |
Время ответа и ограничения
Время обработки запроса платформой Retail Rocket до 100 мс. Время ответа может отличаться из-за особенностей сетевой инфраструктуры.
По умолчанию действует ограничение в 600 запросов/секунду для площадки. При необходимости возможно изменить (с помощью аккаунт-менеджера).