Ограничения скорости запросов (Rate Limiting)

Public API на основе API-токена ведет счетчик запросов для каждого клиента и ограничивает количество запросов в секунду получаемых от клиента. По умолчанию не больше 1000 запросов за 60 секунд. В случае превышения указанного лимита сервер возвращает HTTP-статус 429 Too Many Requests.

Настройка параметров ограничения

Настройка параметров ограничения осуществляется с помощью переменных среды:

RATE_LIMIT_PERMIT_LIMIT - Переменная определяет максимальное количество разрешенных запросов. По умолчанию равно 1000.

# Установить максимальное количество разрешенных запросов.
RATE_LIMIT_PERMIT_LIMIT=1500

RATE_LIMIT_WINDOW_SECONDS - Переменная определяет временной интервал в секундах, в течение которого применяется лимит. По умолчанию равно 60.

# Установить временной интервал равный двум минутам.
RATE_LIMIT_WINDOW_SECONDS=120

Ограничение количества получаемых записей

При запросе данных сервер отдаёт на запрос не более 100 записей, подходящих под условия выборки. Для построения древовидных структур большого объёма используйте рекурсивных запросы.

Пример: Получение потомков узла СПП с количеством записей больше 100 с использованием операторов top и skip.

Получим первые 100 записей:

curl -X 'GET' \
  'https://your-org.domain/public-api/eps?filter=parentId eq '3635745e-412b-4c76-861c-822eb55c2718' & orderby=name & $top=100 & $skip=0' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'

Получим следующие 100 записей:

curl -X 'GET' \
  'https://your-org.domain/public-api/eps?filter=parentId eq '3635745e-412b-4c76-861c-822eb55c2718' & orderby=name & $top=100 & $skip=100' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'

Повторять запрос увеличивая значение оператора skip до тех пор, пока приходят данные с сервера.

Пример: Получение количества узлов СПП типа project для реализации постраничного просмотра.

curl -X 'GET' \
  'https://your-org.domain/public-api/eps?apply=filter(Type eq 'version')/aggregate($count as eps_count)' \
  -H 'accept: application/json;odata.metadata=minimal;odata.streaming=true' \
  -H 'x-version: 409' \
  -H 'Authorization: your-api-key' \
  -H 'x-tenant-id: 5db13376-ba5c-4fd5-ba7f-dc56347956ad'

509.1-59ba7826