Ответы пользователя по тегу GraphQL
  • Какие есть решения для проблемы n +1 в 2019 году?

    Robur
    @Robur
    Знаю больше чем это необходимо
    А чем вас старые в виде dataloader например не устраивают?
    Ответ написан
  • .useMutation всегда возвращает data undefined?

    Robur
    @Robur
    Знаю больше чем это необходимо
    А где вы ждете пока данные загрузятся?
    Ответ написан
  • Как протестировать корректность функций, записывающих в MongoDB?

    Robur
    @Robur
    Знаю больше чем это необходимо
    - поднимаете тестовую базу (можно докер, можно https://docs.mongodb.com/manual/core/inmemory/). чистую или с нужными начальными данными.
    - вызываете ваши функции.
    - делаете запрос в базу, сравниваете ответ с тем что там должно быть.

    В вашем случае возможно есть смысл не запись в базу проверять а делать полное интеграционное тестирование - вместо запроса в базу дергаете нужные query из graphql. Так вы проверите всю цепочку. Дальше - вопрос адекватности тестов которые вы напишите.
    Ответ написан
  • Есть ли Node.js API для генерации файла с GraphQL схемой на лету?

    Robur
    @Robur
    Знаю больше чем это необходимо
    можно генерить программно при старте если у вас есть схема в памяти:
    https://blog.apollographql.com/three-ways-to-repre...
    Смотрите секцию "Converting between all of the different types"
    Можете сохранить и schema.graphql и schema.json.

    Можно сделать ватчер в IDE чтобы он по изменению нужных файлов запускал скрипт который загрузит вашу схему и экспортирует её в файл.
    И другие извращения на ваш вкус.

    Другой вопрос - зачем вам вообще это надо, проще писать все в *.graphql файлы или в ts с тегом gql и импортировать их напрямую, и их же использовать для работы всяких тулз/плагинов и прочего.
    Ответ написан
  • Grapqhl backend и React native app. Стоит-ли объединять?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Нормально вам тимлид говорит, если сделать это грамотно. Single Source Of Truth рулит.

    - разные проекты вполне могут оставаться разными проектами используя один и тот же общий для обоих код. Способов это сделать много. монорепа, модуль, реестр схемы например.
    - у вас уже взаимная зависимость - общий GraphQL API. Вы вряд ли сможете поменять схему в одном проекте и оставить её старой в другом. Возможность хранить схему отдельно и менять независимо - это не гибкость, это прямая дорога к тоннам проблем и куче потерянного времени. Вас не смущает то что каждый раз меняя схему в одном месте надо обязательно сходить и поменять ее в другом чтобы они были всегда синхронизированы, и если вы этого не сделаете/забудете/опечатаетесь/не так скопипастите то что-то где-то обязательно сломается? Именно в этот момент стоило бы почувствовать что-то неладное.
    - если вы не видели чего-то - это не значит что то, чего вы не видели плохо, а то что видели - хорошо.

    В общем, делать стоит - главное делать грамотно. Если вы сейчас весь код в одну кучу свалите то конечно ничего хорошего не выйдет.
    Ответ написан
    Комментировать
  • Graphql мутация?

    Robur
    @Robur
    Знаю больше чем это необходимо
    addNewTemplate({
        variables: {
           id: 12,
           prices: /* данные для PricesInput */
        }
    })


    в чем проблема то у вас? если в том что не можете понять как работать с мутациями - то прочитайте доку, пройдите туториал, в apollo client очень много, хорошо и подробно все описано.
    на первой же странице о том как работать с мутациями - ваш пример:
    https://www.apollographql.com/docs/react/essential...
    Все поймете.
    Ответ написан
    Комментировать
  • GraphQl или Rest api для интернет магазина?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Интернет - магазины не писал но с GraphQL работаю плотно последний год - и я бы взял его для такой задачи.
    Они хорошо ложатся друг на друга - GrapqhQL позволяет вам вытаскивать любые данные в том виде в котором надо клиенту и сделать это максимально продуктивно на сервере.
    Если взять Apollo Client то многие проблемы с кешем, оптимизацией запросов и прочим он решит за вас.
    К тому же всякие вещи в духе "добавили поле и через месяц выяснилось что где-то забыли код обновить" находятся сразу, особенно если вы пишете на TS
    Ответ написан
    Комментировать