или code-first ?
Почитал несколько статей, похоже большинство склоняется к code-first, потому что так резолверы удобнее с точки зрения типов писать (проще задетектить, что типы в резолверах и схеме не совпадают). Так проще с разделением схемы на отдельные кусочки - написал тип, сразу к нему резолвер рядом.
Ну и там говорят, что композиции GQL-схем так проще делать (но меня это мало интересует, т.к. всего 1 схема)
Есть ещё поинт почему code-first лучше "Redundancy in schema definitions (code reuse): Reusing SDL definitions may involve a lot of boilerplate and repeated code."
Но я его не понял - что за реюз SDL-definitions имеется ввиду? 🤔
а бы совместил сделал SDL схему как контракт И валидировал ту что получается из code-first сравнивая вовремя CI Тем самым гарантирую что не задеплоится поломанное API не сответсвующее контракту
Ну раз вам нормально то окей У меня клиенты которые использует API и там методы меняются удалются или перемешаются будут явно не довольны Я есди такое буду использовать ругатся буду страшно Так на шлюзе тот контракт что вы каждый раз при деплое заливаете? Типа какая разница гнде хранится
ну так ты про изменения ломающие обратную совместимость. Схема меняется, но это не значит, что при каждом деплое ломается обратная совместимость
мне кажется тут какое-то недопонимание. SDL-first - это когда схема описывается при помощи SDL GQL code-first - это когда схема описывается на каком-то языке программирования средствами языка программирования - например тип GQL-тип User может быть описан классом User.
так а откуда берется та схема что клиенты используют у вас?
А как клиент про него узнает и что он изменился для него истоник правды это схема
а как клиент узнает, что он изменился в твоём варианте?
Code first по моему опыту удобнее, но схему с фронтами обговариваем на этапе планирования
Обсуждают сегодня