
Контракт из кода, клиент из контракта: избавляемся от тройного дублирования в API
Обычно процесс разработки API выглядит так: мы пишем контроллер. Затем каким-то образом его документируем. После чего фронтер, опираясь на такую документацию, пишет клиент.Мы делаем одну и ту же работу трижды.В прошлой статье я рассказывал, как избавиться от первого дублирования. С помощью бандла sunrise-studio/symfony-openapi можно генерировать OpenAPI-документ из кода, минуя процесс документирования.Но это решает проблему только наполовину. Если OpenAPI-документ вытекает из кода, то клиент должен вытекать из OpenAPI-документа. Иначе написание клиента – и есть то самое дублирование.В этой статье я расскажу как замкнуть цепочку:Controller → OpenAPI → Client → FeatureГде каждый последующий шаг вытекает из предыдущего, а не дублирует его. Читать далее