awesome-everything EN
↑ Обратно к восхождению

API

OpenAPI: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту OpenAPI — spec-first vs code-first, contract drift, gate на breaking changes, codegen, валидация и сдвиг схем в 3.1.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов поперёк всего юнита. Каждый — это решение по реальному API: не определение для заучивания, а выбор, где живёт истина и как пайплайн держит её честной.

Цель

Убедись, что связываешь spec-first vs code-first, contract drift, gate на breaking changes, codegen и валидацию на краю в одну историю про enforcement — тот синтез, к которому вёл урок.

Викторина

У команды есть написанный вручную OpenAPI spec, отрендеренный в красивый docs-портал. Коллега говорит: 'мы защищены от breaking changes.' Чего на самом деле не хватает?

Викторина

Твои написанные вручную docs помечают поле как optional, но работающий сервер теперь отклоняет запросы без него. Как это называется и что это предотвращает?

Викторина

Публичный API потребляют мобильные приложения, которые ты не можешь форс-обновить, и три внешних партнёра. Какая стратегия enforcement подходит?

Викторина

Ты генерируешь TypeScript-клиент из spec, и результат полон any и слабо типизированных объектов. В чём первопричина?

Викторина

Ты апгрейдишь spec с OpenAPI 3.0 до 3.1. Какое изменение реально и почему оно важно?

Викторина

Какое изменение контракта запроса/ответа обратно совместимо и безопасно для выкатки без мажорного бампа версии?

Итог

Сквозная линия юнита — одна история про enforcement: spec становится контрактом, только когда CI делает его несущим. Spec-first vs code-first решает, где живёт истина и проверяется ли контракт до кода, но ни один не уходит от gate — валидируй запросы на краю, диффь каждый PR через oasdiff, чтобы breaking changes (новое required-поле, удалённое поле ответа, суженный тип) роняли сборку, и скармливай тугие схемы генератору, чтобы codegen давал сильные типы. OpenAPI 3.1 переводит схемы на JSON Schema 2020-12, заменяя nullable на type-массивы. Без enforcement spec дрейфует в фикцию и ломает клиентов.

Продолжить восхождение ↑OpenAPI: тест на свободное воспроизведение
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.