Инструменты InterLAB · OpenAPI · консоль · mock-сервер и MSW

API Mock Studio: тестовый API

Рабочий тестовый API для разработки фронтенда и интеграционных проверок до готовности backend. Импортируйте OpenAPI или опишите endpoints, настройте ответы, задержки и ошибки, проверьте контракт и выгрузите mock-сервер.

Бесплатно, без регистрации

Правила v1.0 · 13.10.2026
Проект и схемы

Одинаковый seed — одинаковые тестовые данные, задержки и ошибки.

Источники по строке: http://localhost:3000. * — любой. Пусто — без заголовков CORS.

Именованные схемы для $ref: {"User": {"type": "object", …}}.

Endpoints

Endpoints пока нет. Добавьте вручную, импортируйте OpenAPI или загрузите пример.

Как работает инструмент

  1. Endpoints

    Импорт OpenAPI 3.0/3.1 в JSON или YAML либо ручное описание: метод, шаблон пути /users/{id}, query-параметры, схема тела запроса и ответы по статусам — JSON-шаблон с подстановками или данные, сгенерированные по схеме.

  2. Тестовые данные

    Генератор детерминирован: один seed — одни и те же данные. Учитываются type и format (email, uuid, date-time, date, uri, ipv4), enum, границы и длины, простые pattern, массивы, вложенные объекты, oneOf/anyOf/allOf, nullable; example и examples важнее генерации. Имена свойств подсказывают правдоподобные значения: name, email, phone, city, price, createdAt, avatar.

  3. Консоль и журнал

    Запрос обрабатывается в браузере: маршрут, задержка, внедрённая ошибка, проверка тела и параметров, подстановки и пагинация. В журнале — время, метод, путь, endpoint, статус, длительность, тела и нарушения контракта, с фильтрами.

  4. Контракт и экспорт

    Каждый ответ сверяется со своей схемой, а реальный ответ backend можно вставить и проверить. Выгрузка: mock-server.mjs без зависимостей, обработчики MSW v2, OpenAPI 3.1, Markdown-сводка и JSON проекта.

Правила поведения

Консоль в браузере и выгруженный mock-server.mjs следуют одной таблице. Обработчики MSW повторяют поведение ответов; проверка запроса по схеме выполняется в консоли и в mock-server.mjs.

AMS-B01

Правило
Маршрут: шаблон совпадает посегментно; из подходящих выигрывает более конкретный — статический сегмент важнее параметра, слева направо (/products/featured раньше /products/{id}).

AMS-B02

Правило
Путь найден, метода нет → 405 с заголовком Allow; путь не найден → 404 со списком маршрутов.

AMS-B03

Правило
Номер запроса n к endpoint (с нуля) и seed проекта дают детерминированные числа: один и тот же порядок запросов повторяет те же задержки и ошибки.

AMS-B04

Правило
Внедрённая ошибка: rand(seed, endpoint|err, n) × 100 < доля ошибок → статус ошибки и заголовок X-Mock-Injected-Error.

AMS-B05

Правило
Задержка: фиксированная или min + ⌊rand(seed, endpoint|delay, n) × (max − min + 1)⌋ мс.

AMS-B06

Правило
Запрос проверяется по схеме тела и описанию query-параметров; в режиме «отклонять» нарушение даёт 422 со списком.

AMS-B07

Правило
Подстановки в шаблоне: {{params.id}}, {{query.page}}, {{body.email}}, {{now}}, {{seq}}; строка целиком из подстановки сохраняет тип значения, :number приводит к числу.

AMS-B08

Правило
Эхо параметров: значения параметров пути записываются в одноимённые поля объекта-ответа (числом, если поле числовое).

AMS-B09

Правило
Пагинация: массив режется по ?page= (с 1) и ?limit= (1–100, по умолчанию 10), общее число — в X-Total-Count.

AMS-B10

Правило
Заголовок X-Mock-Status: 404 отдаёт ответ этого статуса для одного запроса — удобно для проверки экранов ошибок.
Правила поведения v1.0 (2026-10-13)

Проверки проекта

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

AMS-E01

Уровень
ошибка
Проверка
Неверный шаблон пути
Что сделать
Путь начинается с /, параметр — целый сегмент вида {id}, имена не повторяются.

AMS-E02

Уровень
ошибка
Проверка
Два endpoint с одним методом и путём
Что сделать
Оставьте один: второй никогда не получит запрос (имена параметров не различают пути).

AMS-E03

Уровень
ошибка
Проверка
Тело ответа — не JSON
Что сделать
Исправьте JSON шаблона — до этого endpoint отвечает 500 mock_template_invalid.

AMS-E04

Уровень
ошибка
Проверка
Схема — не JSON
Что сделать
Схема записывается JSON-объектом: {"type": "object", …}.

AMS-E05

Уровень
предупреждение
Проверка
Для активного статуса нет описанного ответа
Что сделать
Будет отдано тело по умолчанию {error, message}. Добавьте ответ или выберите другой статус.

AMS-E06

Уровень
предупреждение
Проверка
Ответ не соответствует своей схеме
Что сделать
Исправьте пример или схему: фронтенд будет разрабатываться против неверного контракта.

AMS-E07

Уровень
предупреждение
Проверка
Ссылка $ref никуда не ведёт
Что сделать
Добавьте схему в components.schemas или исправьте имя.

AMS-E08

Уровень
совет
Проверка
Схема тела у GET/DELETE не используется
Что сделать
Тело проверяется только у POST, PUT и PATCH.

AMS-E09

Уровень
предупреждение
Проверка
У ответа 204/304 задано тело
Что сделать
По HTTP такие ответы без тела — текст будет проигнорирован.
Проверки проекта

Ограничения

  • YAML разбирается встроенным парсером распространённого подмножества: якоря (&, *), теги (!), сложные ключи и несколько документов не поддерживаются — сохраните спецификацию как JSON.
  • Внешние $ref (другие файлы и URL) не загружаются; ответы бывают только JSON, методы — GET, POST, PUT, PATCH, DELETE.
  • Проверка схем — подмножество JSON Schema: type, required, properties, additionalProperties, items, enum, const, format (email, uuid, date-time, date, uri, ipv4), границы, длины, pattern, allOf/anyOf/oneOf. Ключевые слова за его пределами не проверяются.
  • Генератор подбирает правдоподобные, но вымышленные значения; сложные регулярные выражения не воспроизводятся — пример останется без совпадения с pattern, и проверка это покажет.
  • mock-server.mjs — тестовый сервер для разработки, а не production: без авторизации, лимитов и хранения данных между перезапусками.

Приватность

  • Спецификации, тела запросов и ответов обрабатываются в вашем браузере; консоль не обращается к сети, адрес страницы не меняется.
  • Проект и версии хранятся только в этом браузере (localStorage); журнал запросов — только в памяти вкладки. «Очистить всё» удаляет данные.
  • В аналитику уходит только факт отправки запроса, проверки или экспорта и категория (класс статуса, формат файла) — без путей, тел и схем.
  • Результат уходит к нам, только если вы сами оставите заявку и не снимете галочку «Приложить результат» — что именно уйдёт, видно в форме: число endpoints, список «метод · путь · статусы» и нарушения контракта. Тела ответов, схемы и заголовки в заявку не попадают.

Похожие инструменты

Все инструменты · 40
Готовность к релизуМатрица проверок с доказательствами: CI, миграции, резервные копии, план отката, мониторинг, исключения из рисков и согласование → решение GO / NO-GO.Screenshot → Bug: баг-репорт по скриншотуСкриншот или видео → скрытие приватных данных, разметка проблемы, шаги воспроизведения, проверка человеком и экспорт в GitHub, GitLab или Jira.User Flow Tester: сценарные E2E-тестыКонструктор пользовательских сценариев → готовые тесты Playwright с защитой от запуска на production, покрытие важных маршрутов и разбор результатов pass/fail.Проверка согласованности интерфейсаDesign tokens против CSS: цвета и размеры вне системы, контраст по WCAG, сравнение скриншота с утверждённым baseline и разбор найденного.Проверка спроса до разработкиГипотезы с порогами, лендинг и форма заявки, UTM-ссылки, воронка, интервью и отчёт эксперимента → решение продолжать, менять или закрывать идею.Конструктор коммерческого предложенияШаблоны КП для IT-проектов: состав, этапы, смета, сроки, допущения и исключения, версии с контролем цифр, согласование и PDF.
Расскажите о задаче — мы изучим запрос и свяжемся с вами

Нужен backend, который совпадёт с контрактом?

Спроектируем API, согласуем контракт с фронтендом и разработаем серверную часть с тестами. Объём и стоимость — после брифа.

  • Первый короткий разговор бесплатный — выбираем формат работы
  • NDA — по вашему или нашему шаблону
  • Стоимость — после брифа и согласования объёма

Не присылайте через форму пароли, ключи доступа и исходный код — безопасную передачу доступа обсудим отдельно.

Нажимая кнопку, вы соглашаетесь с обработкой персональных данных.