API
OpenAPI: тест на свободное воспроизведение
Воспроизведение бьёт перечитывание. Для каждого промпта проговори или запиши полный ответ по памяти, прежде чем открыть модельный — именно усилие припоминания закрепляет дисциплину контракта.
Восстанови костяк юнита — почему неэнфорсенный spec это фикция, spec-first vs code-first, что дают codegen и валидация на краю, что ловит oasdiff и сдвиг схем в 3.1 — не заглядывая в урок.
- 01Почему наличие OpenAPI spec не то же самое, что защита от breaking changes? Что на самом деле защищает?
- 02Дай определение contract drift и назови два механизма, которые его предотвращают.
- 03Сопоставь spec-first и code-first: что различается и какой enforcement всё равно нужен обоим?
- 04Что даёт codegen и что отличает сильный сгенерированный клиент от клиента с any?
- 05Перечисли канонические breaking changes, которые ловит diff-инструмент вроде oasdiff, и одну совместимую альтернативу breaking change.
- 06Что изменилось между OpenAPI 3.0 и 3.1 и почему это важно на практике?
Если ты смог восстановить каждый ответ по памяти, у тебя есть костяк юнита: неэнфорсенный spec это фикция, а лекарство от contract drift — сделать spec несущим через валидацию на краю и diff на breaking changes в CI. Spec-first vs code-first решает, где живёт истина и ревьюится ли контракт, но обоим нужен тот же gate. Codegen убивает баги с ручной сборкой запроса только при тугой схеме, oasdiff ловит канонические breaking changes (добавленное required-поле, удалённое поле ответа, суженный тип), а OpenAPI 3.1 переводит схемы на JSON Schema 2020-12 с nullability через type-массив. Всегда: сделай контракт невозможным для тихой поломки.