Ограничения скорости запросов (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'