Обновить
4K+
8
Anatolii Nekhai@fenric

Software Engineer

13
Рейтинг
7
Подписчики
Хабр КарьераХабр Карьера
Отправить сообщение

Контракт из кода, клиент из контракта: избавляемся от тройного дублирования в API

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели10K

Обычно процесс разработки API выглядит так: мы пишем контроллер. Затем каким-то образом его документируем. После чего фронтер, опираясь на такую документацию, пишет клиент.

Мы делаем одну и ту же работу трижды.

В прошлой статье я рассказывал, как избавиться от первого дублирования. С помощью бандла sunrise-studio/symfony-openapi можно генерировать OpenAPI-документ из кода, минуя процесс документирования.

Но это решает проблему только наполовину. Если OpenAPI-документ вытекает из кода, то клиент должен вытекать из OpenAPI-документа. Иначе написание клиента – и есть то самое дублирование.

В этой статье я расскажу как замкнуть цепочку:
Controller → OpenAPI → Client → Feature
Где каждый последующий шаг вытекает из предыдущего, а не дублирует его. 

Читать далее

OpenAPI без #[OA\...]: как я сделал генератор документации для Symfony

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели7.4K

В прошлой статье я уже рассказывал, как однажды устроился на работу и получил пачку «интересных» задач: вручную синхронизировать OpenAPI, оформленный в комментариях к коду, с самим кодом в десятке сервисов.

Тогда это звучало как начало анекдота, но мне было не до смеха.

С тех пор я сменил работу. И, как будто вселенная решила проверить моё чувство юмора, я снова вижу API, где контракт живёт рядом с кодом в ручных #[OA\...] атрибутах.

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

Читать далее

Очередное решение для разработки API и не только

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.1K

Возможно, вы не слышали о Sunrise экосистеме, так или иначе, сегодня я поделюсь опытом разработки API, используя Sunrise решения и не только.

Читать далее

Информация

В рейтинге
691-й
Откуда
Сербия
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Архитектор программного обеспечения