Comments 16
Использую похожую схему для генерации типов и сервисов в TypeScript
В TS прям эта же схема работает просто как сказка, вообще без лишних телодвижений
Закопали, потому что обещали Simple, а получилось наоборот.
Но закопали потому, что появилась потребность в транспортном протоколе для веб-приложений, а веб совместными усилиями разработчиков браузеров и консорциума W3C развивался не в сторону «создать платформу для разработки приложений, как требует рынок», а в сторону «нахерачить побольше атрибутов CSS и развлекаться, получая побочные эффекты от их комбинаций». И в итоге приложения-то разрабатывать было нужно, а никакого вменяемого инструментария/библиотек для этого не было. И сложность XML, которую на десктопных приложениях никто и не замечал, веб-разработчикам стала реальной проблемой.
Простите, а в чём сложность XML для веб-разработчиков? HTML по нотации и есть XML... т.е. очень странно что человек понимает вложенность тега "table", "tr" и работу с их атрибутами, но мозг взрывается когда нужно работать с XML с данными карточки пользователя.
Помню как на десктопе здорово было указать адрес soap сервиса в VS и получит готовый клиент - просто вызывай методы.
Вы, конечно, сравнили хорошо проработанный индустриальный стандарт с поделкой одной компании, склепанной на коленках и созданной с целью продвижения собственного коммерческого решения.
Про SOAP на время забыли, потому что IT отрасль массово заполонили JS-ники, для которых концепция декларации типов и транспорто-независимого протокола была непосильно сложной для их межушного нервного узла. "Зачем нам типы, у нас есть JSON и HTTP!".
Однако когда к новоиспеченному "API" подоспел серьезынй бизнес, потребовалась более строгая форма декларировать контракты взаимодействия между системами. И как результат в данный момент мы видим стихийное переизобретение велосипеда SOAP с нуля подручными и доступными для понимания средствами.
github.com/ermadmi78/kobby-gradle-example
По мойму этот OpenAPI унылая шляпа, столько некрасивого мусора со всех сторон. Я вообще "не пишу код для взаимодействия с для взаимодействия с бэкендом" равно как и сам фронт-енд, а получаю его сразу из моих данных с помощью авто-фронтэндера. https://github.com/Claus1/unigui если что.
Спасибо, Миша! В своих проектах пробую этот подход.
Похоже, появился менее костыльный генератор с поддержкой null-safety: dart-dio-next: https://openapi-generator.tech/docs/generators/dart-dio-next
Как перестать писать код для взаимодействия с бэкендом