Семантический анализатор diff API-ответов

Сравнивает два JSON-ответа API и отделяет функциональные изменения от безвредного drift

Вставьте два JSON-ответа API, например staging vs production или v1 vs v2, и подпишите обе стороны. Инструмент рекурсивно сравнит JSON, отметит добавления, удаления, смену типов и значений, а затем определит, похожи ли различия на реальные контрактные изменения или на безвредный drift вроде UUID и timestamps.

Как использовать:

  • Left / Right Response JSON: полные payload
  • Left / Right Label: названия сред или версий
  • Ignore Safe Drift: скрывает безопасный drift
  • Use AI Semantic Review: подключает более тонкую семантическую оценку

Примеры результатов

1 Примеры

Сравнить staging и production, игнорируя безопасный drift

Отделяет реальные функциональные изменения от UUID/timestamp шума.

Semantic field diff
Показать параметры ввода
{ "leftResponseJson": "{\"id\":\"c1a1c77d-8ab1-4f5f-a2b7-a5796a7f7d10\",\"name\":\"Alice\",\"createdAt\":\"2026-04-07T09:00:00Z\",\"profile\":{\"tier\":\"pro\",\"quota\":10}}", "rightResponseJson": "{\"id\":\"a9f4e419-c5ef-4df6-b274-28a86f4d1b40\",\"name\":\"Alice\",\"createdAt\":\"2026-04-07T09:05:00Z\",\"profile\":{\"tier\":\"enterprise\",\"quota\":\"10\"}}", "leftEndpointUrl": "", "rightEndpointUrl": "", "httpMethod": "GET", "requestHeadersJson": "{}", "requestBodyJson": "{}", "leftLabel": "staging", "rightLabel": "production", "ignoreSafeDrift": true, "useAiSemanticReview": true }

Ключевые факты

Категория
Разработка и Web
Типы входных данных
textarea, text, select, checkbox
Тип результата
html
Покрытие примерами
4
API доступен
Yes

Обзор

Семантический анализатор diff API-ответов — это инструмент для глубокого сравнения двух JSON-ответов, который помогает разработчикам и QA-инженерам быстро находить реальные изменения в контрактах API. В отличие от обычного текстового сравнения, он рекурсивно анализирует структуру данных, подсвечивает добавленные, удаленные или измененные поля и автоматически отфильтровывает безопасный дрейф значений, такой как динамические UUID или временные метки.

Когда использовать

  • При миграции API на новую версию (например, с v1 на v2) для проверки обратной совместимости.
  • Для сравнения ответов между средами staging и production перед релизом.
  • При рефакторинге бэкенда, чтобы убедиться, что структура возвращаемых данных не изменилась.

Как это работает

  • Вставьте два JSON-ответа в левое и правое поля или укажите URL-адреса эндпоинтов для выполнения живых запросов.
  • Задайте метки для каждой стороны (например, staging и production) и настройте параметры фильтрации безопасного дрейфа.
  • Включите AI-анализ для более точной семантической оценки изменений типов и значений.
  • Получите наглядный HTML-отчет, где функциональные изменения отделены от безвредного шума.

Сценарии использования

Регрессионное тестирование API после обновления базы данных или смены фреймворка.
Валидация контрактов микросервисов при интеграции новых фич.
Мониторинг неожиданных изменений в ответах сторонних (third-party) API.

Примеры

1. Сравнение сред staging и production

QA-инженер
Контекст
Перед релизом новой версии биллинга необходимо убедиться, что структура ответа API профиля пользователя не сломалась.
Проблема
Обычный diff показывает сотни изменений из-за разных ID транзакций и времени генерации ответа.
Как использовать
Вставить JSON-ответы со staging и production, установить флаг «Игнорировать безопасный дрейф» и включить AI-анализ.
Пример конфигурации
{
  "leftLabel": "staging",
  "rightLabel": "production",
  "ignoreSafeDrift": true,
  "useAiSemanticReview": true
}
Результат
Инструмент скрывает различия в UUID и датах, подсвечивая только реальную проблему: изменение типа поля quota с числа на строку.

2. Проверка обратной совместимости v1 и v2

Backend-разработчик
Контекст
Разработчик переписал эндпоинт получения списка товаров на новую архитектуру (v2) и хочет сравнить его со старым (v1).
Проблема
Нужно быстро отправить одинаковый POST-запрос на оба эндпоинта и сравнить структуру ответов без ручного копирования JSON.
Как использовать
Указать URL для v1 и v2, выбрать метод POST, добавить тело запроса в requestBodyJson и запустить сравнение.
Пример конфигурации
{
  "leftEndpointUrl": "https://api.example.com/v1/products",
  "rightEndpointUrl": "https://api.example.com/v2/products",
  "httpMethod": "POST",
  "requestBodyJson": "{\"categoryId\": 5}"
}
Результат
Инструмент выполняет оба запроса и показывает HTML-отчет, подтверждающий, что v2 возвращает те же поля, но добавляет новое поле discountPrice.

Проверить на примерах

json

Связанные хабы

FAQ

Что такое безопасный дрейф (safe drift)?

Это изменения значений, которые генерируются динамически и не влияют на логику работы, например, уникальные идентификаторы (UUID), даты создания (timestamps) или случайные хэши.

Можно ли сравнивать ответы напрямую по URL?

Да, вы можете указать URL левого и правого эндпоинтов, выбрать HTTP-метод и добавить заголовки, чтобы инструмент сам выполнил запросы и сравнил результаты.

Зачем нужна опция AI-анализа?

ИИ помогает точнее классифицировать пограничные случаи, например, когда числовое значение передается как строка, определяя, является ли это нарушением контракта или допустимым изменением.

Поддерживаются ли вложенные JSON-объекты и массивы?

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

В каком формате предоставляется результат?

Результат выводится в виде интерактивного HTML-отчета с цветовой подсветкой добавленных, удаленных и измененных полей.

Документация API

Конечная точка запроса

POST /ru/api/tools/api-response-diff-semantic-analyzer

Параметры запроса

Имя параметра Тип Обязательно Описание
leftResponseJson textarea Нет -
rightResponseJson textarea Нет -
leftEndpointUrl text Нет -
rightEndpointUrl text Нет -
httpMethod select Нет -
requestHeadersJson textarea Нет -
requestBodyJson textarea Нет -
leftLabel text Нет -
rightLabel text Нет -
ignoreSafeDrift checkbox Нет -
useAiSemanticReview checkbox Нет -

Формат ответа

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

Документация MCP

Добавьте этот инструмент к конфигурации сервера MCP:

{
  "mcpServers": {
    "elysiatools-api-response-diff-semantic-analyzer": {
      "name": "api-response-diff-semantic-analyzer",
      "description": "Сравнивает два JSON-ответа API и отделяет функциональные изменения от безвредного drift",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=api-response-diff-semantic-analyzer",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Вы можете объединять несколько инструментов, например: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, максимум 20 инструментов.

Если вы столкнулись с проблемами, пожалуйста, свяжитесь с нами по адресу [email protected]