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

Общая информация о работе с 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 мы настоятельно рекомендуем создавать отдельного пользователя, который будет использоваться исключительно для обмена данными
  1. В приложении переходим Настройки → Компания → Пользователи
  2. Нажимаем на кнопку "Создать" и создаем нового пользователя
  3. Открываем созданного пользователя
  4. Во вкладке "Роли" добавляем пользователю необходимые права
  5. Во вкладке "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 запроса:

  1. https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=0&MaxResultCount=1000&ApiKey={key} - получаем первую 1000 записей
  2. https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=1000&MaxResultCount=1000&ApiKey={key} - получаем следующую 1000 записей
  3. 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

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

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

Отменить

Спасибо!