Статьи по: Разработчикам
Эта статья также доступна на:

Общая информация о работе с API

В Pricer24 есть API, которое вы можете использовать для интеграции с вашими учетными системами. Обращаем ваше внимание на то, что API доступно не во всех тарифных планах.

Общая информация



End-point для работы с API - https://api.pricer24.com/
API использует REST-архитектуру
Все запросы и ответы API используют формат JSON
Для работы с API вам необходим ключ
Описание существующих методов и их параметров можно увидеть в Swagger, где можно отправить готовые запросы и посмотреть на ответ сервера

Ограничения


Не более 10 запросов в секунду
Время на выполнение запроса - 60 секунд
При получении 3х ошибок в течении 60 секунд - ключ будет заблокирован на 30 секунд

Авторизация



Для авторизации необходимо к запросу добавлять query-параметр ApiKey со значением вашего ключа. В общем виде ваш запрос будет выглядеть так:
https://api.pricer24.com/v1/{имя_ресурса}?ApiKey={key}&Param1={value1}&Param2={value2}

Получение API-ключа



Для работы с API мы настоятельно рекомендуем создавать отдельного пользователя, который будет использоваться исключительно для обмена данными
В приложении переходим Настройки → Компания → Пользователи
Нажимаем на кнопку "Создать" и создаем нового пользователя
Открываем созданного пользователя
Во вкладке "Роли" добавляем пользователю необходимые права
Во вкладке "API-ключи" нажимаем на кнопку "Создать"

Созданный ключ, автоматически копируется в буфер обмена. Теперь вы можете использовать его для интеграции.

«Пагинация»



Большинство GET-методов в API поддерживают «пагинацию» (постраничную выдачу). Для работы с пагинацией вам необходимо использовать query-параметры:
MaxResultCount - сколько записей необходимо вернуть
SkipCount - сколько записей необходимо пропустить

Особенности


Максимально возможное значение для MaxResultCount = 1000, если передать большее значение - вы получите ошибку
По-умолчанию MaxResultCount = 10, если параметр не передавать, то сервер вернет только 10 записей
По-умолчанию SkipCount = 0
Общее кол-во записей содержится в свойстве totalCount объекта result:


В общем виде ваш запрос будет выглядеть GET https://api.pricer24.com/v1/{method}?SkipCount={PageSize}*{PageNumber-1}&MaxResultCount={PageSize}&ApiKey={key}, где:
PageSize - размер страницы
PageNumber - номер страницы

Кол-во страниц можно вычислить по простой формуле Ceil(TotalCount / PageSize), где Ceil - округление вверх до целого.

Пример


Если общее кол-во записей = 2700, и мы будем получать ответ по 1000 записей, для получения всех записей необходимо будет отправить 3 запроса:
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=0&MaxResultCount=1000&ApiKey={key} - получаем первую 1000 записей
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=1000&MaxResultCount=1000&ApiKey={key} - получаем следующую 1000 записей
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=2000&MaxResultCount=1000&ApiKey={key} - получаем последние 700 записей

Query-параметр Include



Для того, чтобы ответ был максимально легковесным, по-умолчанию возвращается минимальная информация об объектах. Для получения расширенной информации, необходимо передавать query-параметр Include, где через запятую необходимо перечислить, по каким объектам нужна расширенная информация.

Пример


При отправке запроса GET https://api.pricer24.com/v1/contractors?ApiKey={key} без Include сервер вернет такой ответ:

Массивы объектов contractorPriceTypes и contractorWarehouses имеют значения null, т.к. не возвращаются сервером.

Однако, если отправить запрос GET https://api.pricer24.com/v1/contractors?ApiKey={key}&Include=PriceTypes,Warehouses, то ответ уже будет содержать цены и склады контрагента:


Обработка ошибок



Сервер возвращает стандартные коды ответов:
200 - запрос успешно выполнен
401 - ошибка авторизации
403 - не хватает прав
404 - метод не найден
501 - внутренняя ошибка сервера, скорей всего запрос составлен некорректно

В случае ошибки, информация о ней будет возвращена в объекте error:

Также для определения успешен запрос или нет, можно обрабатывать свойство success, где true - запрос выполнен успешно, false - во время выполнения возникла ошибка.

Обновлено на: 28/08/2024

Была ли эта статья полезна?

Поделитесь своим отзывом

Отменить

Спасибо!