Ключевые факты
- Категория
- Development
- Типы входных данных
- textarea, select, text, checkbox
- Тип результата
- json
- Покрытие примерами
- 4
- API доступен
- Yes
Обзор
Детектор ломающих изменений OpenAPI diff — это специализированный инструмент для автоматического сравнения схем OpenAPI и GraphQL. Он анализирует старую и новую версии API, выявляет несовместимые (breaking) изменения и формирует подробный JSON-отчет об их влиянии. Это помогает командам разработчиков и архитекторам предотвращать поломки на стороне клиентов, оценивать риски перед релизом и поддерживать строгую обратную совместимость контрактов.
Когда использовать
- •Перед слиянием (merge) изменений в основную ветку для проверки обратной совместимости API.
- •При обновлении контрактов между микросервисами для предотвращения сбоев интеграции.
- •Во время ревью изменений GraphQL-схем, чтобы убедиться в отсутствии удаленных полей или новых обязательных параметров.
Как это работает
- •Вставьте текущую (старую) версию схемы OpenAPI (YAML/JSON) или GraphQL SDL в первое текстовое поле.
- •Добавьте обновленную (новую) версию схемы во второе поле.
- •Выберите тип схемы (OpenAPI или GraphQL) или оставьте автоматическое определение, а также включите опцию анализа влияния.
- •Инструмент сравнит обе схемы и сгенерирует JSON-отчет с указанием уровня риска релиза и списком всех ломающих изменений.
Сценарии использования
Примеры
1. Поиск удаленного поля в ответе API
Backend-разработчик- Контекст
- Команда рефакторит сервис профилей пользователей и случайно удаляет поле email из ответа эндпоинта.
- Проблема
- Нужно убедиться, что изменения в OpenAPI-спецификации не сломают текущих клиентов, ожидающих это поле.
- Как использовать
- Вставьте старую YAML-схему с полем email и новую схему без него, выберите тип OpenAPI и включите анализ влияния.
- Пример конфигурации
-
schemaType: openapi, includeImpactAnalysis: true - Результат
- Инструмент помечает удаление поля как высокий риск (high release risk) и указывает точный путь: GET /users/{id} -> response 200.email.
2. Проверка новых обязательных полей в мутации
API-архитектор- Контекст
- При развитии GraphQL API в input-объект CreatePostInput добавляется новое поле category.
- Проблема
- Выявить, сделано ли новое поле обязательным, что приведет к ошибкам валидации у старых клиентов.
- Как использовать
- Вставьте старый GraphQL SDL и новый SDL с полем category: String!, выберите тип GraphQL.
- Пример конфигурации
-
schemaType: graphql, includeImpactAnalysis: true - Результат
- Отчет показывает ломающее изменение (breaking change) из-за добавления обязательного поля ввода, предупреждая, что все клиентские мутации должны быть обновлены.
Проверить на примерах
developmentСвязанные хабы
FAQ
Какие форматы схем поддерживаются?
Инструмент поддерживает схемы OpenAPI (Swagger) в форматах YAML и JSON, а также схемы GraphQL SDL.
Что считается ломающим изменением (breaking change)?
К ломающим изменениям относятся: удаление существующих полей ответа, добавление новых обязательных параметров запроса, изменение типов данных или удаление эндпоинтов.
Можно ли отключить анализ влияния?
Да, вы можете снять галочку «Добавить анализ влияния», если вам нужен только базовый список отличий без оценки рисков для клиентов.
Как инструмент определяет тип схемы?
По умолчанию используется автоопределение на основе синтаксиса (auto detect), но вы можете вручную выбрать OpenAPI или GraphQL в настройках.
В каком формате выдается результат?
Результат предоставляется в структурированном формате JSON, который содержит сводку изменений, пути к измененным элементам и уровень риска.