Swagger не нужен!
Как часто у вас бывает, что команда разделена на бэкендеров и фронтендеров, и между ними минимум коммуникации?
Фронт пилит своё, бэк — своё, а когда приходит время интеграции, бэкендер просто кидает ссылку:
«Вот тебе Swagger, разбирайся».
И ведь поддерживать Swagger в актуальном состоянии никто не собирается 🙃
Стоит в контракте появиться новому обязательному полю или поменяться структуре — фронт падает.
И начинается классика жанра: «А что, вы не знали? Мы же в Jira написали!»
Проблема стара как REST.
Все эти попытки наладить процесс обмена знаниями о новых схемах обычно кончаются ничем — потому что знание не передаётся, пока не ломается прод.
🎯 У нас есть продукт — заказ трансферов.
Типичный кейс: аренда машины с водителем из аэропорта в отель и обратно.
Когда продукт только начинался, мы сами добавляли поставщиков:
договаривались о контрактах, согласовывали схемы данных, тестировали ручки.
За три года добавили всего четырёх поставщиков — медленно, мучительно, предсказуемо.
А потом продукт выстрелил 🚀
И мы поняли, что в таком темпе не вывезем.
Решение оказалось простым:
мы сделали reverse API — когда не мы интегрируем поставщиков, а они сами интегрируются к нам.
Потому что мы крутые 😎
Результат — 20+ новых поставщиков за следующие 3 года.
💡 И вот тогда меня осенило.
Почему фронтендеры не могут поступить так же?
Почему бы, не ждать, пока фронт упадёт из-за новой схемы, а сделать так, чтобы бэкендеры сами приходили и говорили:
«Ребята, мы сейчас будем вас ломать — вот новая схема, поддержите её».
⚙️ Как это реализовать?
Очень просто.
Пишешь автотесты (привет прошлому посту 👋), но добавляешь их не к себе в пайплайн, а в пайплайн бэкенда.
Теперь бэкенд не сможет выкатиться без твоего апрува, пока ты не подтвердишь, что фронт готов к новой схеме.
И да, если хочется избежать всей этой бюрократии — сделай все поля опциональными и не рассчитывай ни на кого. 😉
А ты как считаешь?
💯 — даёшь реактивный подход, пусть бэкенд сам просит поддержать их схему
🗿 — проактивный подход норм, мы сами будем следить за своими источниками данных
Post #116
198
- 😁 6
- 🗿 5
- 💯 2
- 🔥 1