Здравствуйте, ·, Вы писали:
P>>Сам подумай, что это значит — кодогенераторы в общей массе отстой. И именно ты топишь за использование тех, которые отстой.
·>Спорить не буду, ибо не важно это. Мой тезис, что схемогенераторы — ещё более отстой, чем кодогенераторы.
У тебя нет аргументов.
P>>Очевидно, что не так. Я пишу — использовать проверенную оттестированую либу, но тебе мерещится "писать весь код руками"
·>Угу. Так используй проверенную оттестированную либу для кодогенерации. Кто запрещает-то?
Отсутствие таких в природе с силу принципиальной сложности кодогенерации.
P>>В противном случае лишняя строчка в манифесте или сломает клиент, или сломает сервер, или просто проигнорится
P>>И то, и другое, и третье есть проблема
·>И чем поможет схемогенератор?
Генератор схемы это не какая нибудь сложная вещь, легко покрывается тестами, в отличие от кодогенератора.
Когда имплементишь апи, то эту часть и так нужно покрыть тестами, что естественно.
P>>А раз не решает все, то часть останутся на проде. Гы-гы. Откуда и следует, что нужно тестировать и прод. Например — при обновлении 3rd party зависимостей.
·>Нет, не следует.
У тебя снова нет аргументов, поздравляю!
P>>·>Чтобы пускануть тесты в проде и выявить эту проблему, в этом самом проде уже должно оказаться их обновление.
P>> Алё — они поменяли свой сервис глядя в свои тесты. И подломали некоторые запросы твоего сервиса.
·>Это и лечится SIT.
Не лечится. Напомню — у вендора таких как ты 100500 контрактов. Тестировать как их новое апи ведет себя с каждым из консумером они никак не могут.
Максимум, для особых кейсов могут предоставить тестовые инстансы. Но это не гарантирует решение всех проблем.
P>>Это норма, а не проблема. Крупные вендоры апи имеют десятки и сотни тысяч консумеров. Ты для них один из сотен тысяч.
·>Про conformance tests я уже тоже рассказывал.
Ты же не собираешься запускать их на проде. А значит будешь тестировать "юзером".
У них тесты зеленые. А твоя система против их новой версии никогда не работала.
Приплызд.
P>>Пускаешь тесты прода и видишь, что емейлы таки глючат. Опаньки!
·>Нормальные вендоры предоставляют средства для тестирования. Ищем для первого упомянутого: https://docs.sendgrid.com/ui/sending-email/email-testing
Именно такие тесты и нужно пускануть после обновления с их стороны. Альтернатива — "у нас багов нет", это твой любимый вариант.
P>>Тогда это не признак большого проекта, а скорее признак тухлого проекта, который еле держится на плаву.
·>И что?
Ты говоришь про большой проект, а под признаки подходит любой, где нет денег. Например — 1 человек работает вместо команды и кое как справляется, на миграцию денег-времени нет.
То есть, ты просто накидываешь абы что.
P>>Мы уже выяснили — бредогенераторов для openapi 100500 единиц, и почти все из них или не подходят, или их нельзя использовать
·>И? В чём твой солюшн-то?
Я ж сказал — исключить кодогенерацию, оставить генерацию схемы для внешних консумеров, если у них платформа отличная от твоей.
Если такая же — ты им даешь клиент который у тебя готов на этапе создания апи. Напоминаю — описание апи дает нам автоматически и сам клиент.
P>>Типичный кейс — понадобилась некоторая фича, а кодогенератор не поддерживает, приплызд
·>Я сам их подпатчивал и даже пулл-реквесты засылал, мелочёвку правда, и их даже мержили, не рокет-сайнс совершенно.
Именно что мелочевку. А что делать с большими фичами-багами — не ясно.
Обилие кривых кодогенераторов гарантирует затраты времени на выбор подходящего.
P>>Экспорт АПИ — это ты предоставляешь АПИ своего сервиса внешним консумерам.
·>Хорошо, уже теплее. Ради чего стараться-то? Что внешние консьюмеры будут с этим твоим экспортированным АПИ делать будут?
Что им надо делать, то и будут.
P>> Теоретик?
P>>1 Тебе надо держать в уме возможности кодогенератора. Заюзал ты ResponseHeaders, а у тебя такое не поддерживается. Гы-гы.
·>То же и со схемогенератором. Или он у тебя универсальный всемогутер?
Схемогенератор это вещь намного проще. Типичный разработчик искаропки умеет генерировать json по набору данных, все приложения состоят из такой логики. А вот внятную кодогенерацию сделать — это вещь нетривиальная.
P>>2 Метаданные парсить не нужно, это типизированый интерфейс, по которому генерить что угодно легко и просто.
·>А надо-то генерировать не что угодно, а только то, что умеет openapi.
В слова решил поиграть?
P>>3 Вместо схемогенератора у тебя кодогенератор, при чем — два штуки, каждый со своими особенностями, клиент и сервер.
·>У тебя не просто схемогенератор, а схемогенератор+кодогенератор. Иначе генерить схему без последующей кодогенерации — зря электричество жечь.
Мне нужна генерация схемы + тесты по этой схеме. Тестировать конкретным генереным клиентом в корне неверно.
·>Сделать два кодогенератора проще, чем схемогенератор+кодогенератор.
Нужен только схемогенератор — апи будет тестироваться не абы чем, а конкретным тулом который умеет openapi.
Ты не знаешь ни версию кодогенератора у клиента, ни платформу, ни даже язык программирования.
>>И оказывается, что именно здесь получается бред, который ты сам же и описал.
·>Так у тебя бреда получается ещё больше.
Главное что ты сам себе противоречишь.
P>>Я например писал и то, и другое. Кодогенератор это хтонический ужос по сравнению с генерацией джсон по метаданным.
·>Спекогенератор без кодогенератора не нужен.
Ты так и не сказал, зачем кодогенератор есть уже есть генератор спеки.
P>>Генерится не из произвольно написаного кода, а из метаданных которые предоставляются либой. Они по своей природе навешиваются на что угодно без проблем.
·>Я знаю. Только это всё усложняет.
А я вижу, что облегчают.
P>>Он пишет про другое — ты внимательно прочитай.
·>Я прочитал и понял именно так. Если у тебя есть другая интерпретация, выкладывай.
Он пишет о том, что хороших кодогенератов для клиента не нашли.
P>>А его нет. Гы-гы. Надо писать новый генератор, потому что допилить напильником не выходит из за GPL лицензии.
·>Ну зашли пулл-реквест.
И чем тебе пулл реквест поможет если лицуха GPL ? Такой софт не факт что можно в любой конторе использовать.
P>>Еще раз — не надо придумывать метаданные. Алё, ты вообще читаешь? Берем проверенную либу, закладываемся на её возможности.
·>Это не я их предлагаю придумывать, а Ночной Смотрящий, ему это и советуй.
Это твои домыслы. У него ничего не сказано, либу он берет, или врукопашную чегото делает.
P>>Снова теоретизирования Нам нужно проверить, что схема валидная. Мы берем готовый тул, который умеет слать запросы по такой спеке, и пишем под него тесты. Здесь у нас ровно 0 генеренного кода.
·>Тесты можно писать проще, без схемы и специальных тулов.
Нам нужно не просто абы что абы куда послать, а дать гарантии, что тест посланый согласно спецификации OpenAPI будет понят твоим сервисом.
В противном случае получится так, что тесты зеленые, потому что девелоперы-тестеры намастырили их по записям со стейджа, а у клиента ничо не работает, т.к. он шлет в строгом соответствии со спекой.
P>>Ты высек сам себя — по твоей ссылке пример работы бредо кодогенератора. Этот бредогенератор такое нагенерил, что ни руками вычистить, ни внятно использовать нельзя.
·>Ты читать точно умеешь? https://restapi.moedelo.org/docs — это именно что сгенерённая swagger схема. Которую невозможно ни для чего полезного применить, даже глазками почитать и то проблема, тулзы на ней затыкаются.
1. есть схема
2. какие то кодогенераторы с ней не справляются
С чего ты взял, что она генерированая? Подробнее. Я видел и бОльшие простыни, созданные вручную.