На главную

Лимиты и добросовестное использование

Сводка всех жёстких ограничений, которые применяет MockLab, чтобы ничто в поведении ресурса не стало сюрпризом посреди проекта.

Ограничение частоты запросов

Каждый проект ограничен 60 запросами в минуту к своим эндпоинтам /m/..., счётчик ведётся по ключу проекта — не по ресурсу, так что проект с тремя ресурсами делит один бюджет на 60 запросов между всеми ними. Каждый ответ несёт заголовок X-RateLimit-Remaining, показывающий, сколько запросов осталось в текущем окне, независимо от того, успешен ли запрос, — так что корректно работающий клиент может снизить нагрузку заранее, а не узнавать о блокировке уже постфактум.

Превысьте лимит — и получите ответ 429 Too Many Requests с заголовком Retry-After, сообщающим, сколько секунд подождать до сброса окна.

async function fetchWithBackoff(url) {
  const response = await fetch(url);
  if (response.status === 429) {
    const retryAfterSeconds = Number(response.headers.get("Retry-After"));
    await new Promise((resolve) => setTimeout(resolve, retryAfterSeconds * 1000));
    return fetchWithBackoff(url);
  }
  return response;
}
import { useQuery } from "@tanstack/react-query";

function useProducts() {
  return useQuery({
    queryKey: ["products"],
    queryFn: () => fetch("https://mocklab.dev/m/demo7k2m9x/products").then((res) => res.json()),
    // TanStack Query already retries failed requests with backoff by default —
    // a 429 here is retried automatically without any extra code.
    retry: 3,
  });
}

Размер страницы

limit по умолчанию равен 10 и ограничен 100 — запрос на бóльшее количество не вызывает ошибку, он просто молча уменьшается до 100. Никакого предела на общий count записей самого ресурса нет; ограничение касается только того, сколько записей возвращается в одной странице. Полный набор параметров пагинации — в разделе Параметры запроса.

Граница в 10 000 записей для сортировки и фильтрации

Сортировка, фильтрация и поиск доступны только для ресурсов с 10 000 записей или меньше. Выше этого порога запрос по-прежнему выполняется успешно и корректно разбивается на страницы, но эти параметры молча игнорируются — на что указывает заголовок ответа X-MockLab-Notice: sort-filter-disabled-above-10000, а не ошибка, поскольку сам запрос не является некорректным. Полное объяснение — в разделе Как устроена генерация.

CORS

Каждый ответ /m/... включает Access-Control-Allow-Origin: * и настоящий обработчик preflight-запросов OPTIONS, так что обращение к вашему эндпоинту напрямую из браузерного JavaScript с любого источника работает без прокси. Немногочисленные пользовательские заголовки ответа, упомянутые на этих страницах (X-Total-Count, X-RateLimit-Remaining и остальные), явно открыты через Access-Control-Expose-Headers, так что response.headers.get(...) для любого из них работает и из браузерного кода, а не только с сервера или из командной строки.

Что действительно не ограничено

Единственное, у чего нет жёсткого предела, — это count, общий размер записей ресурса. В этом весь смысл: поскольку записи генерируются по запросу, а не хранятся, ресурс с миллионом записей обходится серверу так же, как и ресурс с десятью. Перечисленные выше ограничения существуют, чтобы сервис оставался честным по отношению к каждому проекту, который его использует, а не чтобы ограничивать, что может представлять отдельный ресурс.