API First vs Code First. Как мы попали в параллельную вселен

⚡️ v42.26.1

API First vs Code First. Как мы попали в параллельную вселенную 🌌

Недавно согласовывали с поставщиком ПО экстренную доработку REST API.

Договорились: месяц на всё, включая поставку новой версии.

Ожидали документацию заранее, чтобы параллельно готовить интеграцию. Но её нет. А сроки поставки начинают сдвигаться.

За две недели до первоначального дедлайна просим:

— Дайте хотя бы OpenAPI-спецификацию. Нам нужно согласовать контракт и начать свою часть работы, не дожидаясь релиза.

— Спецификация будет вместе с поставкой. Она генерируется из кода.

Пауза.

Мы смотрим на них. Они на нас. И понимаем: мы из разных вселенных.

🔀 В чём разница?

Code First — сначала реализуем интерфейс, затем генерируем спецификацию из кода.

API First — сначала проектируем и согласовываем контракт, затем реализуем его.

Для поставщика спецификация — результат разработки.

Для нас — основа, без которой интеграцию не начать.

И вот парадокс: поставка задерживается, мы хотим выиграть время за счёт параллельной работы, но не можем получить даже описание того, что разрабатывается.

⚠️ Чем это грозит?

• Команды не могут полноценно работать параллельно.

• Несовпадения ожиданий обнаружатся только при интеграции.

• После поставки могут потребоваться новые доработки. И снова сроки.

Самое интересное — никто не пытался сделать плохо. Мы просто не договорились, что API-контракт должен появиться раньше кода. Для нас это было очевидно. Для коллег — нет.

📝 Что вынес из этой истории?

Теперь с поставщиками буду заранее выяснять:

Когда получим API-контракт? Кто и когда его согласовывает? Как обрабатываются и документируются обратно несовместимые изменения интерфейса? Можно ли получить моки до релиза?

Четыре вопроса, которые могут сэкономить недели ожидания и переделок.

💡 API First — не про Swagger. Это про возможность договориться до того, как код написан.

А вы сталкивались с таким столкновением API First и Code First? Как выходили из ситуации? 👇

#API #интеграция #архитектура #APIFirst #CodeFirst #Т1Амбассадор